PHP 獲取二維陣列中某個key的集合

2021-08-03 11:07:19 字數 2110 閱讀 4213

對於二維陣列的操作問題,一般的做法是直接foreach,乙個個的往乙個陣列變數裡塞進行賦值,這種非常常見的做法,但這樣的寫法很影響效能,因為使用 php 原生的函式肯定比迴圈效率高。下面介紹如何使用原生的函式實現此需求。

事例陣列

$arr = array(  

0 => array(

'id' => 11,

'name' => 'username1',

'code' => '123456789',

),

1 => array(

'id' => 22,

'name' => 'username2',

'code' => '123456789',

),

2 => array(

'id' => 33,

'name' => 'username3',

'code' => '123456789',

) );

1)獲取索引」id」的集合,並且儲存為 array(11,22,33)

原始寫法:

foreach ($arr

as$key => $value)

優化後:

$list = array();  

$list = array_map('array_shift', $arr);

//php 版本要求,(php 5 >= 5.5.0)

$list = array();

$list = array_column($arr, 'id');

2)獲取索引」name」的集合,並且儲存為 array(『username1』,』username2』,』username3』)

原始寫法:

foreach ($arr

as$key => $value)

優化後:

$list

= array();

$list

= array_reduce(

$arr

, create_function('$v,

$w', '$v[

$w["id"]]=

$w["name"];return

$v;'));

列印結果:

array(  

11 => 'username1',

22 => 'username2',

33 => 'username3',

);

3)在每個陣列元素裡面新增乙個元素,或者重新賦值

原始寫法:

foreach ($arr

as$key => $value)

優化後:

array_walk($arr,function

(&$item,$key));

列印結果:

$arr = array(  

0 => array(

'id' => 11,

'name' => 'username1',

'code' => '123456789',

'add_element'=>1

),

1 => array(

'id' => 22,

'name' => 'username2',

'code' => '123456789',

'add_element'=>1

),

2 => array(

'id' => 33,

'name' => 'username3',

'code' => '123456789',

'add_element'=>1

) );

PHP 獲取二維陣列中某個key的集合

本文為 分享,也是在工作中看到一些 大牛 的 做做分享。具體是這樣的,如下乙個二維陣列,是從庫中讀取出來的。清單 php view plain copy user array 0 array id 1,name 張三 email zhangsan sina.com 1 array id 2,name...

獲取二維陣列中某個鍵的和

今天主要是做下總結 其實php版本大於5 可以用 array column 很簡單 在用個array sum 就好了 但是 我們用的是5.2 沒辦法 只能用array map 了 中間也想過先遍歷 做出來了 但是 也想換換其他的方式,就用這個函式寫了下 array size 3 0 array si...

php二維陣列按照某個鍵值排序

php二維陣列按照某個鍵值排序 arr array name 小壞龍 age 28 array name 小壞龍2 age 14 array name 小壞龍3 age 59 array name 小壞龍4 age 23 array name 小壞龍5 age 23 array name 小壞龍6 ...