php 提取多維陣列指定列

2022-03-02 08:04:34 字數 1572 閱讀 4628

前言:有時候在開發中會遇到這樣的問題,我們需要把有規律的多維陣列按照縱向(列)取出,有下面的方法可用:

我們將拿下面的陣列來處理:

1 $arr = array(

2 '0' => array('id' => 1, 'name' => 'name1'),

3 '1' => array('id' => 2, 'name' => 'name2'),

4 '2' => array('id' => 3, 'name' => 'name3'),

5 '3' => array('id' => 4, 'name' => 'name4'),

6 '4' => array('id' => 5, 'name' => 'name5'),

7 );

//需要得到的結果:$name_list = array('name1', 'name2', 'name3', 'name4', 'name5');

1、使用array_column()

php在5.5.0版本之後,新增了乙個專用的函式array_column()

方法:

1 $name_list = array_column($arr, 'name');

2、array_walk()方法

array_walk()使用使用者自定義函式對陣列中的每個元素做**處理

1 $name_list = array();

2 array_walk($arr, function($value, $key) use (&$name_list));

3、array_map()方法

array_map()函式和array_walk()作用類似,將**函式作用到給定陣列的單元上

1 $name_list = array();

2 array_map(function($value) use (&$name_list), $arr);

4、foreach迴圈遍歷方法

foreach()迴圈相對上面的方法效率稍微低一些

1 $name_list = array();

2 foreach ($arr as $value)

5、array_map變種

把$arr陣列的每一項值的開頭值移出,並獲取移除的值作為新陣列。注意此時新陣列$name_list的鍵仍是原陣列$arr的鍵

1 $name_list = array_map('array_shift', $arr);

2 //注意:該功能會獲取$arr中的 id 列,而不是name 列。

3 //另外,如果需要獲取二維陣列每一項的開頭列或結尾列,也可以這樣做:

4 5 $name_list = array_map('reset', $arr);

6 $name_list = array_map('end', $arr);

7 8 //這三個變種方法作用比較侷限,僅在獲取第一列或最後一列的時候有用,在

9 //複雜的陣列中就難以發揮作用了。

PHP多維陣列按指定鍵名排序

對多維陣列按指定鍵名進行排序 arr 要排序的原始陣列 key1 指定的主排序鍵名,eg id sort1 指定的主排序規則,eg sort numeric,sort desc key2 指定的輔排序鍵名,eg sort sort2 指定的輔排序規則,eg sort numeric,sort des...

PHP多維陣列指定多欄位排序

array multisort 對多個陣列或多維陣列進行排序.其php 手冊中的說明如下 bool array multisort array arr mixed arg sort asc mixed arg sort regular mixed arr要排序的乙個 array。arg接下來的每個引...

linux 提取指定的列

提取name.txt 檔案中的最後一列中以 分割的第二列 awk 符擷取命令 awk f t name.txt awk f res.txt其中 f 表示分割符,nf表示最後一列,nf 1 表示倒數第二列 2表示第二列 0表示全部,1表示第一列 把上一步的資料和name.txt檔案合併生成乙個新的檔案...