繁体   English   中英

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有多少把钥匙。

我需要测试一个或多个testkey值是否相等,如果将这个结果放在一个变量上。

由于testkey为0,因此不考虑2和6。

(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]等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM