array_walk_recursive ֆունկցիան

array_walk_recursive ֆունկցիան կիրառում է տրված ֆունկցիան բազմաչափ զանգվածի բոլոր տարրերի նկատմամբ։ Վերադարձնում է true հաջող ավարտի դեպքում կամ false սխալի առաջացման դեպքում։ Առաջին պարամետրով ֆունկցիան ընդունում է զանգված, իսկ երկրորդով՝ callback։

Callback-ին փոխանցվում են երկու պարամետր։ Որպես առաջին պարամետր անցնում է զանգվածի տարրի արժեքը, իսկ որպես երկրորդ՝ բանալին։

Ֆունկցիային փոխանցված զանգվածն ինքնին չի փոխվում։ Սակայն դրան կարելի է հասնել տարրը հղումով փոխանցելու միջոցով։

Շարահյուսություն

phparray_walk_recursive(array|object &$array, callable $callback, mixed $arg = null): bool

Օրինակ

Եկեք թվարկենք բազմաչափ զանգվածը ու արտածենք դրա բանալիներն ու տարրերը.

php<?php
  $arr = [
    'a' => 1,
    'b' => 2,
    'c' => [
      'd' => 3,
      'e' => 4,
    ],
  ];
  
  array_walk_recursive($arr, function($elem, $key) {
    echo $key . ' ' . $elem . '<br>';
  });
?>

Կոդի կատարման արդյունք.

php'a 1'
'b 2'
'd 3'
'e 4'

Օրինակ

Եկեք թվարկենք զանգվածը ու դրա տարրերը բարձրացնենք քառակուսի.

php<?php
  $arr = [
    'a' => 1,
    'b' => 2,
    'c' => [
      'd' => 3,
      'e' => 4,
    ],
  ];
  
  array_walk_recursive($arr, function(&$elem, $key) {
    $elem = $elem ** 2;
  });
  
  var_dump($arr);
?>

Կոդի կատարման արդյունք.

php[
  'a' => 1,
  'b' => 4,
  'c' => [
    'd' => 9,
    'e' => 16,
  ],
];

Տես նաև

  • array_walk ֆունկցիան,
    որը կանչում է ֆունկցիա զանգվածի տարրերի համար
  • array_map ֆունկցիան,
    որը կիրառում է ֆունկցիա զանգվածի տարրերի նկատմամբ
  • array_filter ֆունկցիան,
    որը ֆիլտրում է զանգվածը
  • array_reduce ֆունկցիան,
    որը ծալում է զանգվածը