![](/img/trans.png)
[英]Get the maximum value and the key of the corresponding array from an array of arrays in PHP
[英]Get the maximum $key value from array with keys ($key -> $value) for every unique $value in php
我有一個帶有如下鍵的 $array:
Array
(
[1] => 462
[2] => 462
[3] => 462
[4] => 462
[5] => 19
[6] => 19
[7] => 19
[8] => 462
)
其中 1,2,3,4,5,6,7,8 是鍵,462,462,462,462,19,19,19,462 是值。 我想獲得每個唯一值的最大鍵,因此,結果必須是一個數組,如:
Array
(
[7] => 19
[8] => 462
)
如何獲得所有唯一 $value 的最大 $key? 我知道我可以通過以下方式獲得最大鍵和最大值:
foreach ($array as $key => $value) {
$keys[] = $key;
$values[] = $value;
}
echo "max key is - ".max($keys);
echo "max value is - ".max($values);
但這並不是我所需要的。 那么,什么可以是獨奏呢?
僅使用array_flip()
將首先將所有重復項減少為 1 個元素(數組不能有多個具有相同值的鍵),所以...
$a = [1=>462,462,462,462,19,19,19,462];
print_r(array_flip($a));
給
Array
(
[462] => 8
[19] => 7
)
您可以再次使用array_flip()
來交換鍵/值...
print_r(array_flip(array_flip($a)));
給...
Array
(
[8] => 462
[7] => 19
)
制作一個數組$maxis
獲取唯一值的鍵並將它們存儲為元素。
$array = [1=>462, 2=>462, 3=>462, 4=>462, 5=>19, 6=>19, 7=>19, 8=>462];
$maxis = [];
foreach ($array as $key => $value) {
$maxis[$value][] = $key;
}
/*
462: [1,2,3,4,8]
19: [5,6,7]
*/
循環$maxis
並將$arr_keys
的最大值存儲為鍵,並將$key
作為其值。
$res = [];
foreach ($maxis as $key=> $arr_keys) {
$res[max($arr_keys)] = $key;
}
print_r($res);
印刷:
Array
(
[8] => 462
[7] => 19
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.