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物件時,即使裡面沒有任何元素,也要分別一塊記憶體空間給它,而且,我...