array_column php 函数
今天想从二维数组中取某个列成一维数组 结果发现 array_column需要php5.5支持才行 然后自己写了一个仿造版本的array_column
两种思路
1.直接遍历 取值给追加数组 返回
2.先把二维数组key确定下来 遍历key 通过key取值追加数组 返回
3.采用array_map函数遍历获取
本次实验中 我们用了一个大数组进行循环遍历,结果发现 第一种方法快 第二种方法相对慢一点 第三种方法最慢
代码如下:
<?php $array=array(); for ($i=1; $i <= 200000; $i++) { $array[]=array( "id"=>$i, "name"=>"test_user".$i, ); } $time_start1=microtime(true); $info=array_column1($array,"name"); $time_end1=microtime(true); var_dump(($time_end1-$time_start1)*1000); echo "<hr/>"; $time_start2=microtime(true); $info=array_column2($array,"name"); $time_end2=microtime(true); var_dump(($time_end2-$time_start2)*1000); echo "<hr/>"; $time_start3=microtime(true); $info=array_column3($array,"name"); $time_end3=microtime(true); var_dump(($time_end3-$time_start3)*1000); echo "<hr/>"; function array_column1($array,$search_key) { $data=array();//初始化结果数组 //对二位数组按照 key value遍历取值成一维数组 foreach ($array as $key => $value) { $data[$key]=$value[$search_key]; } return $data; } function array_column2($array,$search_key) { $data=array();//初始化结果数组 $keys=array_keys($array); foreach ($keys as $value) { $data[$value]=$array[$value][$search_key]; } return $data; } function array_column3($array,$search_key) { $array=array_map(function($value) use($search_key) { return $value[$search_key]; }, $array); return $array; } exit();