待整理(文章)

[PHP基础学习笔记] 数组函数:使用array_walk()遍历数组

字号+ 作者:hanyufeng 来源: 2018-01-10 21:28:00 我要评论( ) 阅读:

说明:array_walk()可以遍历数组,并使用回调函数处理每个数组元素。语法格式:array_walk($array,function($value,$key[,$p]){},$para)$ar ...

说明:

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
)


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • [PHP基础学习笔记] 数组函数:使用array_map()遍历数组

    [PHP基础学习笔记] 数组...