说明:
array_walk()可以遍历数组,并使用回调函数处理每个数组元素。
语法格式:
array_walk($array, function($value,$key[,$p]){},$para)$array:要处理的函数。
function($value,$key[,$p]){}:回调函数。
$para:参数,只能有一个。即array_walk最多只能有3个参数。$para可以是字面量,也可以是变量。如果是字面量,会自动和回调函数参数中的第3个参数对应。
例如:
//定义数组
$array = ['id'=>1001, 'name'=>'Jack', 'job'=>'lecture'];
//遍历数组
array_walk($array, function($value,$key,$connector){
if($key != 'id') {
echo $key,$connector,$value,'<br>';
}
},'=>');$connector 会等于 '=>'
示例源码:
遍历数组,根据分数给出成绩等级:
<?php
header('content-type:text/html; charset=utf-8');
//创建数组
$array = [50,60,63,65,70,75,79,80,85,86,89,90,96];
echo '<pre>';
echo '原数组:<br>';
print_r($array);//原样输出键、值(key、value)
//使用回调函数处理
echo '使用array_walk()的回调函数处理:<br>';
//输出处理后的数组
$grade_standard = ['及格'=>60, '中'=>70, '良'=>80, '优'=>90];
$grade_count = ['不及格'=>0, '及格'=>0, '中'=>0, '良'=>0, '优'=>0];
array_walk($array, function ($value,$key,$grade_standard){
if($value >= $grade_standard['优'] ){
$GLOBALS['grade_count']['优']++;
} elseif($value >= $grade_standard['良'] ){
$GLOBALS['grade_count']['良']++;
} elseif($value >= $grade_standard['中'] ){
$GLOBALS['grade_count']['中']++;
} elseif($value >= $grade_standard['及格'] ){
$GLOBALS['grade_count']['及格']++;
} else {
$GLOBALS['grade_count']['不及格']++;
};
},$grade_standard);
echo '<pre>';
echo '成绩统计:<br>';
print_r($grade_count);运行效果:
原数组: Array ( [0] => 50 [1] => 60 [2] => 63 [3] => 65 [4] => 70 [5] => 75 [6] => 79 [7] => 80 [8] => 85 [9] => 86 [10] => 89 [11] => 90 [12] => 96 ) 使用array_walk()的回调函数处理: 成绩统计: Array ( [不及格] => 1 [及格] => 3 [中] => 3 [良] => 4 [优] => 2 )
相关文章![[PHP基础学习笔记] 数组函数:使用array_map()遍历数组](http://static.hanyu123.cn/uploads/1027/15091140717.png)
精彩导读
热门资讯
关注我们