I have a common pattern which Im sure there must be a built-in array function in PHP to handle but just can\'t see it.
I have multiple arrays such as the following:<
As of PHP 5.5 you can use the array_column() function:
$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);
Will output:
array(2) {
[0]=>
string(19) "Sub array 1 value 1"
[1]=>
string(19) "Sub array 2 value 1"
}
The only difference with the accepted answer is that you lose the original key name, but I think this is not a problem in your case.
Before PHP 5.5, this would be the most efficient solution:
$key = 'key1';
$output = array_map(function($item) use ($key) {
return $item[$key];
}, $testArray);
As of PHP 5.5, there is now an array_column
function for this (see COil's answer).