ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
1、array_map():对数组中的每一个元素都执行一个回调函数,并返回一个执行后的新的数组: $arry = array('<h1>hello world</h1>','style="margin-left:10px"'); function fn($v){ return htmlspecialchars($v); } $newarry = array_map('fn',$arry); echo '<pre>'; print_r($newarry); 2、array_walk():对数组中的每一个元素都执行一个回调函数,成功返回true,失败返回false: $arry = array('a'=>900,'b'=>1500,'c'=>5263,'d'=>6352); function fn(&$v){ if($v<1000){ $v+=500; } } if(array_walk($arry,fn)){ echo '<pre>'; print_r($arry); } array_map()和array_walk()的区别: array_map()对数组的每个元素执行回调函数,回调函数必须用return返回。 array_walk()对数组的每个元素执行回调函数,返回值是true,对原数组没有直接影响。例如下面的代码,如果在回调函数内不加&引用地址,则输出值还是原数组 $arry = array(1,2,3,4,'桃子'); function fn($v){ if($v<5){ $v+=1; } } array_walk($arry,'fn'); print_r($arry); 3、array_walk_recursive():递归的操作数组,使多维数组中的元素应用回调函数: $arry = array( array('uname'=>'张三','money'=>100), array('uname'=>'李四','money'=>200), array('uname'=>'王五','money'=>300), array('uname'=>'赵六','money'=>400) ); function fn(&$v,$k){ if($k=='money'&&$v<300){ $v+=1000; } } if(array_walk_recursive($arry,fn)){ echo '<pre>'; print_r($arry); } 4、数组的两种遍历方式: $arry = array('seo','web','php',100,200,300,1.22); $num = count($arry); for($a=0; $a<$num; $a++){ if(gettype($arry[$a])==integer){ echo $arry[$a].'<br/>'; } } echo '<br/>'; foreach($arry as $k){ if(gettype($k)==integer||gettype($k)==double){ echo $k.'<br/>'; } }