[英]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.