zoukankan      html  css  js  c++  java
  • 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();
  • 相关阅读:
    bzoj3196 Tyvj 1730 二逼平衡树
    bzoj2929 [Poi1999]洞穴攀行
    bzoj2325 [ZJOI2011]道馆之战
    cf413E Maze 2D
    bzoj2599 [IOI2011]Race
    bzoj1528 [POI2005]sam-Toy Cars
    UVA 796 Critical Links(无向图求桥)
    UVA 315 Network(无向图求割点)
    HDU 1269 迷宫城堡(求是否只有一个强连通分量)
    HDU 3974 Assign the task
  • 原文地址:https://www.cnblogs.com/lizhaoyao/p/4234277.html
Copyright © 2011-2022 走看看