Blogger Information
Blog 29
fans 0
comment 0
visits 27231
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
使用array_filter()、array_walk()、array_map() 三个回调函数来处理数组
LIWEN的博客
Original
759 people have browsed it
<?php
/**
 * 使用回调函数来处理数组
 */
header('Content-Type:text/html; charset=UTF-8');
//1、array_filter($arr,function(){})函数:将每个值取出,传入回调函数,进行处理,返回结果为true的元素
$array = [1,0,4,18,'',2,2,6,18,33,'',null];

echo '<pre>';
//1.1 用于处理掉数组中的空元素/0元素/null元素
$res1 = array_filter($array,function ($value){
    return $value;
});
print_r($res1);
//1.2 用于删除指定的值,如删除数组中等于2的元素,并将键值重置(使用array_values()函数重置键值)
$res2 = array_filter($array,function ($val){
    if ($val == 2){
        return false;
    }else{
        return $val;
    }
});
print_r(array_values($res2));

//2、array_walk($arr,function($value,$key){})函数:将每个键值对出入到回调函数中处理,返回处理结果为true的元素
//2.1 用于为每个值添加后缀
$suffix = 'www.php.cn';
array_walk($array,function ($value,$key,$suffix){
    echo $key.'=>'.$value.$suffix.'<br>';
},$suffix);
//2.2 用于过滤掉数组中符合条件的元素,并将结果中的键值对格式化输出
$connector = '----';
array_walk($array,function ($value,$key,$connector){
    if ($value == 2){
        return false;
    }else{
        echo $key.$connector.$value.'<br>';
    }
},$connector);

//3、array_map(function($val1[,$val2...]){},$arr1[,$arr2,$arr3...])函数:对一个或多个数组进行回调处理
//3.1 处理单数组
$age = [13,45,15,55,32];
$res3 = array_map(function ($value){
    if ($value<18){
        return '<span style="color: red">未成年</span>';
    }else{
        return $value;
    }
},$age);
print_r($res3);
// 3.2 处理双数组
$key = ['id','name','email','sex'];
$value =['1001','kiki','kiki@php,cn','female'];
//过滤敏感元素sex,并拼接两个数组
$res4 = array_map(function ($key,$value){
    if ($key != 'sex'){
        return $key.'---'.$value.'<br>';
    }else{
        return false;
    }
},$key,$value);
print_r(array_filter(array_values($res4)));


Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post