对于php中的每个唯一$value,使用键($key->$value)从数组中获取最大$key值
我有一个$数组,其中包含如下键:对于php中的每个唯一$value,使用键($key->$value)从数组中获取最大$key值,php,Php,我有一个$数组,其中包含如下键: 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是键,462462462,19,19,19462是值。我希望为每个唯一值获取最大键,因此,结果必须是如下数组: 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是键,462462462,19,19,19462是值。我希望为每个唯一值获取最大键,因此,结果必须是如下数组:
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);
但这并不是我所需要的。那么什么是孤子呢?仅使用数组翻转将首先将所有重复项减少为1个元素数组不能有多个具有相同值的键,因此
$a = [1=>462,462,462,462,19,19,19,462];
print_r(array_flip($a));
给予
您可以再次使用数组翻转来交换键/值
print_r(array_flip(array_flip($a)));
给
Array
(
[8] => 462
[7] => 19
)
仅使用array_flip将首先将所有重复项减少为1个元素数组不能有多个具有相同值的键,因此
$a = [1=>462,462,462,462,19,19,19,462];
print_r(array_flip($a));
给予
您可以再次使用数组翻转来交换键/值
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$数组作为$key=>$value{
$maxis[$value][]=$key;
}
循环$maxis并将$arr_keys的最大值存储为key,将$key存储为其值
$res=[];
foreach$maxis为$key=>$arr\u key{
$res[max$arr_key]=$key;
}
打印_r$res;
印刷品:
生成一个数组$maxis接受唯一值的键并将它们存储为元素
$array=[1=>462,2=>462,3=>462,4=>462,5=>19,6=>19,7=>19,8=>462];
$maxis=[];
foreach$数组作为$key=>$value{
$maxis[$value][]=$key;
}
循环$maxis并将$arr_keys的最大值存储为key,将$key存储为其值
$res=[];
foreach$maxis为$key=>$arr\u key{
$res[max$arr_key]=$key;
}
打印_r$res;
印刷品:
很好,是的,这是一条路要走,由于键冲突,你会得到你的唯一值,我将在未来使用这个!谢谢,是的,这是一条路要走,由于关键的冲突,你会得到你的独特的价值观,我将在未来使用这个!谢谢