(PHP 4, PHP 5, PHP 7, PHP 8)
array_walk — Bir dizinin her üyesine kullanıcı tanımlı bir işlevi uygular
dizi
dizisinin her elemanına kullanıcı tarafından
tanımlanmış işlev
işlevini uygular.
array_walk() işlevi dizinin dahili göstericisinin konumunda etkilenmez. Dizinin dahili göstericisini dikkate almaksızın dizi elemanları üzerinde sırayla işlem yapar.
dizi
İşleme sokulacak dizi.
işlev
Normalde, işlev
iki değiştirge alır. İlki
dizi
değiştirgesinin değeri, ikincisi ise indis
veya anahtardır.
Bilginize:
Eğer
işlev
işlevinin doğrudan dizinin kendisi üzerinde işlem yapması gerekiyorsa işlevin ilk değiştirgesi bir gönderim olarak belirtilir. Böylece elemanlar üzerinde yapılan her değişiklik özgün dizide de yapılmış olur.
Bilginize:
Birçok dahili işlev, (örneğin, strtolower()), beklenenden fazla değiştirge aktarılırsa ve doğrudan
işlev
olarak kullanılamazsa bir uyarı çıktılar.
Potansiyel olarak yalnızca dizi
değerleri
değiştirilebilir; yapısı değiştirilemez, yani programcı öğeleri
ekleyemez, ayarlayamaz veya yeniden sıralayamaz. Geri çağırım
işlev
i bu gereksinimi karşılamıyorsa,
array_walk() işlevinin davranışı tanımsızdır ve
öngörülemez.
veri
Eğer isteğe bağlı veri
değiştirgesi
belirtilmişse, değeri işlev
işlevine üçüncü
değiştirge olarak aktarılır.
true
döner.
PHP 7.1.0'dan itibaren, geri çağırım işlev
i 2'den
fazla değiştirge (dizi üyesinin değeri ve anahtarı) gerektiriyorsa, bir
ArgumentCountError istisnası üretilir. Evvelce,
işlev
belirtilenden daha fazla değiştirge
gerektirdiğinde array_walk() işlevinin yaptığı her
işlev
çağrısında
E_WARNING seviyesinde bir uyarı üretilirdi.
Örnek 1 - array_walk() örneği
<?php
$fruits = array("d" => "limon", "a" => "ayva", "b" => "muz", "c" => "elma");
function test_alter(&$item1, $key, $prefix)
{
$item1 = "$prefix: $item1";
}
function test_print($item2, $key)
{
echo "$key. $item2\n";
}
echo "Önce ...:\n";
array_walk($fruits, 'test_print');
array_walk($fruits, 'test_alter', 'fruit');
echo "... ve sonra:\n";
array_walk($fruits, 'test_print');
?>
Yukarıdaki örneğin çıktısı:
Önce ...: d. limon a. ayva b. muz c. elma ... ve sonra: d. meyve: limon a. meyve: ayva b. meyve: muz c. meyve: elma