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();

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值