[英]Get specific element from each sub array
我有一個共同的模式,我確信在PHP中必須有一個內置的數組函數來處理,但只是看不到它。
我有多個數組,如下所示:
$testArray = array (
'subArray1' => array(
'key1' => "Sub array 1 value 1",
'key2' => "Sub array 1 value 1"
),
'subArray2' => array(
'key1' => "Sub array 2 value 1",
'key2' => "Sub array 2 value 2"
)
);
我需要從每個subArray獲取key1
值,其中可以有任何數字。
我總是最終只是循環遍歷每個數組以獲得所需的值,但我確信必須有一種更簡單,更有效的方法來處理它。
我目前正在使用以下簡單的foreach來解析數組:
$preparedSubs = array();
foreach($testArray as $subArray) {
$preparedSubs[] = $subArray['key1'];
}
它盡可能短,但正如我所說,我確信有一個PHP結構可以更好地處理它。
在PHP 5.5之前,這將是最有效的解決方案:
$key = 'key1';
$output = array_map(function($item) use ($key) {
return $item[$key];
}, $testArray);
從PHP 5.5開始,現在有一個array_column
函數(參見COil的答案 )。
從PHP 5.5開始,您可以使用array_column()函數:
$key = 'key1';
$testArray = array (
'subArray1' => array(
'key1' => "Sub array 1 value 1",
'key2' => "Sub array 1 value 2"
),
'subArray2' => array(
'key1' => "Sub array 2 value 1",
'key2' => "Sub array 2 value 2"
)
);
$output = array_column($testArray, $key);
var_dump($output);
將輸出:
array(2) {
[0]=>
string(19) "Sub array 1 value 1"
[1]=>
string(19) "Sub array 2 value 1"
}
與接受的答案的唯一區別在於您丟失了原始密鑰名稱,但我認為這不是您的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.