(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 bağımsız değişken alır. İlki dizi
bağımsız değişkeninin 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 bağımsız değişkeni 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 bağımsız değişken 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
bağımsız değişkeni belirtilmişse, değeri işlev
işlevine üçüncü bağımsız değişken olarak aktarılır.
true
döner.
PHP 7.1.0'dan itibaren, geri çağırım işlev
i 2'den fazla bağımsız değişken (dizi üyesinin değeri ve anahtarı) gerektiriyorsa veya isteğe bağlı veri
bağımsız değişkeninin belirtilmesi durumunda 3'ten fazla bağımsız değişken gerektiriyorsa, bir ArgumentCountError istisnası üretilir. Evvelce, işlev
belirtilenden daha fazla bağımsız değişken gerektirdiğinde array_walk() işlevinin yaptığı her işlev
çağrısında E_WARNING seviyesinde bir uyarı üretilirdi.
Sürüm: | Açıklama |
---|---|
8.0.0 | işlev geri çağırım işlevinin ikinci ve üçüncü bağımsız değişkeni için de gönderimli bağımsız değişken gerekiyorsa bu işlev artık E_WARNING seviyesinde bir uyarı üretiyor. |
Ö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
Örnek 2 - İsimsiz işlev kullanılan array_walk() örneği
<?php
$elements = ['a', 'b', 'c'];
array_walk($elements, function ($value, $key) {
echo "{$key} => {$value}\n";
});
?>
Yukarıdaki örneğin çıktısı:
0 => a 1 => b 2 => c