(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şlev
iş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