【发布时间】:2019-07-12 12:44:16
【问题描述】:
我正在尝试匹配如下所示的 2 个数组。
$system = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4);
$public = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4);
我的问题是,我需要两个数组的数组键是相同的值和相同的计数。
这意味着:
// passes - both arrays have the same key values and same counts of each key
$system = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4);
$public = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4);
// fails - $public does not have 'blue' => 1
$system = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4);
$public = array('red' => 2, 'green' => 3, 'purple' => 4);
// should fail - $public has 2 'blue' => 1
$system = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4);
$public = array('blue' => 1, 'blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4);
我尝试过使用array_diff_keys、array_diff 和其他 php 函数,但没有一个可以捕获具有相同值的额外键(即如果 'blue' => 1,重复它仍然通过)
有什么好办法解决这个问题?
【问题讨论】:
-
您最后的
$public数组无效,数组中不能有两个blue键。如果你var_export(array('blue' => 1, 'blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4))你会得到array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4) -
@SougataBose 你为什么删除你的答案是正确的......
-
这个问题php无法解决,这就是php的行为方式,php获取distinct key的最后一个值