array_column 函數, 以及在PHP5.5之下的替代方法.


array_column 函數, 是能夠根據多維數組中共有的一個鍵值來提取多維數組中屬於這個鍵的值.

例如下面的數組:

$test = array(
    0 => array(
     'id' => 11,
'name'=>'zhangsan' ), 1 => array(
     'id' => 22,
'name'=> 'lisi' ), 2 => array(
     'id' => 33,
'name'=> 'wangmazi' ), 3 => array(
     'id' => 44,
'name'=> 'zhaoliu' ) );

要把他們提取到一個數組中, 那么就可以array_column()函數;

$newNameArray = array_column($test, "name");

打印結果:

如果要指定鍵值, 則

$newNameArray = array_column($test, "name", "id");//$test 操作的數組; 第一name 是 提取某個列的值; 第二個id表示用id來作為值得鍵

打印結果:

方便好用, 但是只能在php5.5以上, 而且如果第二個參數  column_name  為 數字, 將返回空.

 

下面的自定義函數很好的解決了這個問題:

/**
 * array_column() // 不支持低版本;
 * 以下方法兼容PHP低版本
 */
function _array_column(array $array, $column_key, $index_key=null){
    $result = [];
    foreach($array as $arr) {
        if(!is_array($arr)) continue;

        if(is_null($column_key)){
            $value = $arr;
        }else{
            $value = $arr[$column_key];
        }

        if(!is_null($index_key)){
            $key = $arr[$index_key];
            $result[$key] = $value;
        }else{
            $result[] = $value;
        }
    }
    return $result; 
}

參數與array_column() 相同, 用法也相同, 支持任何索引形式.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM