Dea*_*ock 1 php arrays associative-array
我有像这样的关联数组
array
{
[company 1]=>array
(
[1981] => 1
[1945] => 3
)
[company 2]=>array
(
[1990] => 18
[2005] => 13
)
[company 3]=>array
(
[1950] => 6
[2012] => 9
)
}
Run Code Online (Sandbox Code Playgroud)
我想获得最低和最高的键,即 1945 年和 2012 年。我怎样才能做到这一点?我已经搜索过 stackoverflow 并且关联数组的 Hightest 值 是最接近的可能性,但它给出了最小值和最大值,我想要最小值和最大值键。
**我不想使用foreach循环**
如果你真的讨厌foreach,这里有一个解决方案:
$arr = array(
"Company 1" => array(
"1981" => 1,
"1945" => 3
),
"Company 2" => array(
"1990" => 18,
"2005" => 13
),
"Company 3" => array(
"1950" => 6,
"2012" => 9
)
);
$arr = array_map("array_keys", $arr);
$arr = array_reduce($arr, "array_merge", array());
Run Code Online (Sandbox Code Playgroud)
你$arr最终会是这样的:
Array
(
[0] => 1981
[1] => 1945
[2] => 1990
[3] => 2005
[4] => 1950
[5] => 2012
)
Run Code Online (Sandbox Code Playgroud)
现在您可以使用min()和max()函数或sort()轻松获得最高和最低值。
sort($arr);
echo end($arr); /*highest value; actual output: 2012*/
echo reset($arr); /*lowest value; actual output: 1945*/
Run Code Online (Sandbox Code Playgroud)