簡體   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