پیاده روی بازگشتی (array_walk_recursive)
در «پیاده روی بازگشتی (array_walk_recursive)» هر عنصر حتی داخل آرایه های تودرتو پردازش می شود. «تابع کاربر (User-defined function)» برای هر کلید و مقدار صدا زده می شود. بنابراین می توانیم مثل بازی، به همه جعبه ها برسیم.
array_walk_recursive چیست؟
تابع array_walk_recursive() روی کل آرایه، حتی زیرآرایه ها، می چرخد. سپس کلید و مقدار هر عنصر را به تابع ما می دهد. تفاوت با array_walk این است که این تابع وارد لایه های عمیق هم می شود.
مثال: پیمایش آرایه های تودرتو
<?php
function myfunction($value, $key)
{
echo "The key $key has the value $value<br>";
}
$a1 = array("a" => "red", "b" => "green");
$a2 = array($a1, "1" => "blue", "2" => "yellow");
array_walk_recursive($a2, "myfunction");
?>
نحوه نگارش (Syntax)
<?php
// array_walk_recursive(array, callback, optional_param...)
array_walk_recursive($array, "myfunction", $param);
?>
نکات کاربردی
نکته: مقدار بازگشتی TRUE یا FALSE است و وضعیت اجرا را می گوید.
نکته: این قابلیت از PHP 5+ در دسترس است.
نکته: اگر فقط یک لایه داری، array_walk ساده تر است.
نکته: برای مراجعه سریع، صفحه پیاده روی بازگشتی را نشانه گذاری کن.
مراحل تمرین سریع
- یک آرایه تودرتو بساز.
- تابع کاربرت را با دو پارامتر بنویس.
- array_walk_recursive را صدا بزن و خروجی را ببین.
جمع بندی سریع
- روی زیرآرایه ها هم می چرخد.
- کلید و مقدار را می دهد.
- بازگشت TRUE یا FALSE دارد.
- از PHP 5 به بعد است.
- برای تک لایه، array_walk کافی است.