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