Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对于php中的每个唯一$value,使用键($key->$value)从数组中获取最大$key值_Php - Fatal编程技术网

对于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; 印刷品:


很好,是的,这是一条路要走,由于键冲突,你会得到你的唯一值,我将在未来使用这个!谢谢,是的,这是一条路要走,由于关键的冲突,你会得到你的独特的价值观,我将在未来使用这个!谢谢