講個 PHP 的騷操作。論如何實現:把二維數組內某二維元素的值,單獨提出來組成一維數組。
0x00 傳統操作
$pieces = []; foreach($whole as $item) { $pieces[] = $item['foo']; } return $pieces; |
0x01 騷操作
return array_map( function ($item) { return $item['foo']; }, $whole ); |
省掉兩個變量($pieces
、$item
),對於業務邏輯比較複雜的位置,省一個變量說不定就少死十個腦細胞…
PHP 內,函數內部變量沒有作用域之分,只有出函數後纔會銷燬。所以
$item
在匿名函數內是外部無法訪問的。
0x02 拓展
array_map
其實還有不少用途,需要遍歷數組每個元素的「值」的時候,都可以派上用場。
但需要遍歷 Key => Value 形式的關聯數組,該怎麼操作呢?
return array_map( function callback($k, $v) { ... }, array_keys($array), $array ); |
搞定。