博客列表 >使用回调函数来处理数组

使用回调函数来处理数组

艾克的博客
艾克的博客原创
2018年01月10日 15:47:58749浏览

<?php
/**
* 使用回调函数来处理数组
* array_filter($arr,function($value){}):将每个值取出传入回调函数,进行处理返回true的元素
* array_walk($arr,function(){$value,$key});将每个键值对传入到回调中进行处理,返回true的元素
* array_map(function(){},$arr1)对一个或多个数组进行回调处理
*
*
*/

header('content-type:text/hrml;charset=utf-8');

//$array = ['id'=>1111,'name'=>'jack','job'=>'student'];

//array_filter():过滤数组中的部分元素 通过引用传参修改
//$temp = [10,'',20,'','php'];
//
//将数组中的空字符串去掉 只显示10,20,PHP 有序排列
//print_r(array_values(array_filter($temp)));


//删除 数组$array中jack
//print_r(array_filter($array,function ($value){
//    if ($value == 'jack'){
//        return false;
//    }
//    return true;
//}));

//修改数组中jack的值
//$tb = ['id'=>1111,'name'=>'jack','job'=>'student'];
// print_r(array_filter($tb,function (&$value){
//     if ($value == 'jack') {
//         $value = '杰克';
//     }
//     return true;
// }));

//array_walk($arr,function($value,$key){}[,$param]);
//array_walk()本意是在数组中进行漫步,走一遍,对每个元素的兼职进行个性化的一些处理


//给数组$array数组中数组元素添加一个后缀 www.php.cn 用array_walk实现
//$suffix = 'www.php.cn';
//array_walk($array,function ($value,$key,$suffix){
//    echo $key.'=>'.$value.'('.$suffix.')';
//},$suffix);
//
////array_walk()过滤数组中键名等于id的数据,将结果中的键值对用***进行连接
//$connector = '***';
//array_walk($array,function ($value,$key,$connector){
//    if ($key !='id') {
//        echo $key.$connector.$value;
//    }
//},$connector);


//array_map(function($v1,$v2){},$arr1,$arr2...);
/*
* 1.本意是数组映射
* 2.回调参数是数量与数组的的数量一致
* 3.每个数组的元素必须一致,否则,短的数组自动填充空元素
* 4.如果回调函数是null,那么返回一个多维数组
* 5.处理的数组仅处置值,与键无关
* 6.返回值是处理过的索引数组
*/
//单数组:划分判断未成年与成年
//$age = [12,19,50,60];
//$res = array_map(function ($val){
//    if ($val<18) {
//        return '未成年';
//    }
//        return '成年';
//
//},$age);
//print_r($res);

//双数组:过滤
//$key = ['id','name','sex','age','address','job'];
//$value = ['100','jack','male','19','湖南','student'];
//
////过滤敏感数组 sex,age,
//$res1 = array_map(function ($key,$value){ //$key,$value是数组传过来的的值如id,name
//    if (!in_array($key,['sex','age'])) {// 对数组$key传过来的值进行识别过滤
//        return $value;
//    }
//},$key,$value);
//print_r(array_filter($res1));//因为sex,age过滤了 出现了空元素 ,用array_fliter进行过滤掉


//array_map(null,arr1,arr2)

$name = ['id','name','lesson'];
$value = ['100','jack','php'];
$res2 = array_map(null,$name,$value);//生成多维数组
//print_r($res2);//可以看书是一个索引数组
foreach ($res2 as $value) { //遍历索引数组
   list($key,$val) = $value;//用list函数处理
   echo $key,'是',$val;
}

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议