Blogger Information
Blog 32
fans 1
comment 0
visits 28934
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
使用回调函数来处理数组
艾克的博客
Original
750 people have browsed it

<?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;
}

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