PHP 数组值比较


php array values compare

嗨,伙计们,我需要你们的帮助。假设我有一个数组。

$arr = array(
1  => array(
       key1 => something,
       key2 => something,
       key3 => something,          
       testkey => 3,           
       keyx...),
2  => array(
       key1 => something,
       key2 => something,
       key3 => something,          
       testkey => 0,           
       keyx...),
3  => array(
       key1 => something,
       key2 => something,
       key3 => something,          
       testkey => 2,           
       keyx...),
4  => array(
       key1 => something,
       key2 => something,
       key3 => something,          
       testkey => 2,           
       keyx...),
5  => array(
       key1 => something,
       key2 => something,
       key3 => something,          
       testkey => 3,           
       keyx...),
6  => array(
       key1 => something,
       key2 => something,
       key3 => something,          
       testkey => 0,
       keyx),
7  => array(
       key1 => something,
       key2 => something,
       key3 => something,          
       testkey => 3,           
       keyx...),
n =>array(blabla)
)

我不知道$arr有多少个密钥。

我需要测试测试键的一个或多个值是否相等,如果它们将此结果放在变量上。

不考虑 2 和 6,因为测试密钥为 0。

(0 是我的默认值,我可以把它放到 NULL)

3 和 4 的值为 1(第一个匹配)。

1、5 和 7 的值为 2(匹配秒)。

然后我必须以某种方式存储这些值:

$matched = array();
    $matched[1] = array (2, 6);
    $matched[2] = array (1, 5, 7);

但我相信它可以做得更好。

谢谢。

我会按testkey值对数组$arr进行排序。这可以在 O(n lg n) 时间内完成。然后循环访问排序后的数组并将原始键添加到 $matched[1] 。当testkey值更改时,您开始将下一个键值添加到 $matched[2] 等。