array_walk_recursive Fonksiyonu

array_walk_recursive fonksiyonu, belirtilen fonksiyonu çok boyutlu bir dizinin tüm elemanlarına uygular. Başarılı olması durumunda true döndürür veya bir hata oluşması durumunda false döndürür. İlk parametre olarak fonksiyon bir dizi, ikinci parametre olarak ise bir geri çağırım işlevi alır.

Geri çağırım işlevine iki parametre iletilir. İlk parametre olarak dizi elemanının değeri, ikinci parametre olarak ise anahtar iletilir.

Fonksiyona iletilen dizi kendi başına değişmez. Ancak bu, elemanın referans yoluyla iletilmesiyle sağlanabilir.

Sözdizimi

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

Örnek

Bir çok boyutlu diziyi dolaşalım ve anahtarlarını ve elemanlarını yazdıralım:

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

Kodun çalıştırılmasının sonucu:

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

Örnek

Bir diziyi dolaşalım ve elemanlarının karesini alalım:

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);
?>

Kodun çalıştırılmasının sonucu:

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

Ayrıca Bakınız

  • array_walk fonksiyonu,
    bir dizi elemanları için fonksiyon çağırır
  • array_map fonksiyonu,
    bir dizi elemanlarına fonksiyon uygular
  • array_filter fonksiyonu,
    bir diziyi filtreler
  • array_reduce fonksiyonu,
    bir diziyi indirger