دالة array_walk() في PHP
مثال
تطبيق دالة اللفظية الخاصة بالمستخدم على كل عنصر في المجموعة:
<?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"); ؟
تعريف واستخدام
تطبيق دالة اللفظية array_walk() على كل عنصر في المجموعة.في الدالة،اسم المفتاح وقيمة المفتاح هما المعامل.
注释:يمكنك تغيير قيمة عنصر المجموعة عن طريق تحديد الأول من معامل الدالة الخاصة بالمستخدم كمرجع: &$value (انظر مثال 2).
نصيحة:إذا كنت بحاجة إلى معالجة مجموعات أعمق (مجموعة تحتوي على مجموعة أخرى)،استخدم array_walk_recursive() دالة.
النحو
array_walk(array,myfunction,userdata...)
معامل | وصف |
---|---|
array | مطلوب.يحدد المجموعة. |
myfunction | مطلوب.اسم الدالة الخاصة بالمستخدم. |
userdata,... | اختياري.يحدد المعامل الخاص بالمستخدم.يمكنك تقديم أي عدد من المعامل إلى هذه الدالة. |
شرح
تطبيق دالة اللفظية من قبل array_walk() على كل عنصر في المجموعة.إذا نجح،فسيتم إرجاع TRUE،وإلا سيتم إرجاع FALSE.
في الحالة العادية myfunction يقبل إثنين من المعامل.array قيمة المعامل كالمتغير الأول،اسم المفتاح كالمتغير الثاني.إذا تم تقديم المعامل الاختياري userdata ،سيتم تمريرها كالمتغير الثالث لـدالة اللفظية.
如果 myfunction 函数需要的参数比给出的多,则每次 array_walk() 调用 myfunction 时都会产生一个 E_WARNING 级的错误。这些警告可以通过在 array_walk() 调用前加上 PHP 的错误操作符 @ 来抑制,或者用 error_reporting()。
注释:如果回调函数需要直接作用于数组中的值,可以将回调函数的第一个参数指定为引用:&$value。(参见例子 3)
注释:将键名和 userdata 传递到 myfunction 中是 PHP 4.0 新增加的。
技术细节
返回值: | 如果成功则返回 TRUE,否则返回 FALSE。 |
PHP 版本: | 4+ |
更多实例
例子 1
设置一个参数:
<?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"); ؟
例子 2
更改一个数组元素的值(请注意 &$value):
<?php function myfunction(&$value,$key) { $value="yellow"; } $a=array("a"=>"red","b"=>"green","c"=>"blue"); array_walk($a,"myfunction"); print_r($a); ؟