array map常用技巧

2022-03-24 13:46:50 字數 3543 閱讀 9931

array_map() 函式將使用者自定義函式作用到陣列中的每個值上,並返回使用者自定義函式作用後的帶有新值的陣列。

簡單來說 「array_map」 會對陣列中的每一項進行處理,並返回處理後的資料。

定義:

array_map的引數為array_map(處理函式,陣列,陣列...)

處理函式可以是匿名函式,也可以是具名函式

陣列可以是多個陣列或者是單個陣列

用法:

應用場景1:對陣列的每一項進行乘法操作12

345$arr=array(1,2,3,4,5);

$result=array_map(function($value),$arr);

print_r($result);//array ( [0] => 10 [1] => 20 [2] => 30 [3] => 40 [4] => 50 )

應用場景2:二維陣列轉換成一維陣列12

3456

78910

1112

1314

1516

1718

1920

2122

2324

2526

2728

2930

3132

3334

3536

3738

3940

4142

4344

4546

4748

4950

5152

53$arr=array(

array(

array('id'=>1,'name'=>'a'),

array('id'=>2,'name'=>'b')

),

array(

array('id'=>3,'name'=>'c'),

array('id'=>4,'name'=>'d'),

array('id'=>5,'name'=>'e')

)

);

$result=array();

array_map(function($value)use(&$result),$arr);

/*

講一下function () use (){}  是php5.3後新增的閉包,use()的括號裡面可以對外部的變數進行傳參,共匿名函式使用

array

(

[0] => array

(

[id] => 1

[name] => a

)

[1] => array

(

[id] => 2

[name] => b

)

[2] => array

(

[id] => 3

[name] => c

)

[3] => array

(

[id] => 4

[name] => d

)

[4] => array

(

[id] => 5

[name] => e

)

)

*/

SparseArray和ArrayMap的內部實現

1 sparsearray 上面這段話來自sparsearray類的宣告,重點關注一下 與使用hashmap將integers對映到objects相比,它的記憶體效率更高,因為它避免了自動裝箱鍵,並且其資料結構不依賴於每個對映的額外條目物件。這也是sparsearray的優點 sparsearray...

ArrayMap原始碼閱讀

android原始碼中的乙個map 實現的map介面 號稱能夠比hashmap更省記憶體。因為hashmap是鏈式位址解決衝突,但是有乙個叫entry的類,佔了一定空間。key value也是用物件來表示的。有乙個很重要的是,arraymap根本不是雜湊表,hash值只是個標記,這根本就是乙個二叉查...

ArrayMap和HashMap的記憶體占用的區別

hashmap 原理 hashmap 是基於雜湊表的 map 介面實現的,內部儲存的結構是使用雜湊表的拉鍊結構 陣列 鍊錶 的方式,如下圖所示 hashmap中預設的儲存大小就是乙個容量為16的陣列,所以當我們建立出乙個hashmap物件時,即使裡面沒有任何元素,也要分別一塊記憶體空間給它,而且,我...