(PHP 4, PHP 5, PHP 7)
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ştirgesi ikincisi ise indis veya
anahtardır.
Bilginize:
Eğer
işlevişlevinin doğrudan dizinin kendisi üzerinde işlem yapması gerekiyorsa işlevin ilk değiştirgesini bir gönderim olarak belirtin. Böylece elemanlar üzerinde yapılan her değişiklik özgün dizide yapılmış olur.
Kullanıcılar ekleme/silme gibi işlemlerle geriçağırım işlevinde işlem
görmekte olan dizi üzerinde değişiklik
yapmamalıdırlar. Eğer array_walk() uygulaması
sırasında dizi değişikliğe uğrarsa bu işlevin davranışı beklendiği gibi
olmayabilir.
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.
Başarı durumunda TRUE, başarısızlık durumunda FALSE döner.
Eğer işlev belirtilenden daha fazla değiştirge
gerektiriyorsa array_walk() işlevinin yaptığı her
işlev çağrısında
E_WARNING seviyesinde bir uyarı üretilir. Bu uyarılar
array_walk() işlevinin adının önüne bir @ işleci getirilerek veya
error_reporting() kullanılarak bastırılabilir
Ö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<br />\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