2012-08-08 62 views
0

如何獲得兩個數組之間的關係,當他們兩個在某些關係中的值相同時這兩個數組的索引,例如,當兩個數組在每個數組的相同索引具有相關值時如何得到一個數組得到的關係PHP

我已經從mysql的一個表中檢索「標記名」和「路徑」,然後我把這兩個列值放在兩個數組中使用循環,所以「數組標籤[]」有價值「介紹「和」數組路徑[]「具有用於引入的路徑值,這兩個值在所關注的數組的索引」0「上,並且所有數據以這種方式收集在」arrat Tag []「和」array Path []「之後根據使用此代碼的其他陣列對我的「標籤」進行排序,

$sorted =array_intersection($some_other_array,$array Tag) 

現在我怎麼會知道相關的路徑值作爲標籤排序?

的希望您的建議

+0

而不是創建兩個不同的數組,你可以創建哈希數組與鍵作爲路徑和標記作爲值,反之亦然 – Poonam 2012-08-08 07:44:06

+0

@Poonam你可以請給我一些例子嗎? – 2012-08-08 07:50:06

+0

@Poonam還有一件事我需要排序標籤數組與其他一些數組這就是爲什麼我把它們放在不同的數組將排序技術將仍然工作後使用哈希數組? – 2012-08-08 07:53:02

回答

1

從MySQL /當你創建數組DB結果集,創造儘可能

while($row = mysql_fetch_assoc($query)){ 
    $array[$row['path']] = $row['tag']; 
} 

假設你的數組作爲

$array['xyz'] = 'pqr'; 
$array['abc'] = 'wsx'; 
$array['poi'] = 'qaz'; 
$array['lkj'] = 'abc'; 

排序的陣列按需要根據標籤或排序可用的方法。 在這種情況下,而不是int索引它將有鍵爲路徑 排序與標籤還綁定它與路徑。

排序陣列後(假設與標籤名稱的第一個字母alphabates排序)

$array['lkj'] = 'abc'; 
$array['poi'] = 'qaz'; 
$array['xyz'] = 'pqr'; 
$array['abc'] = 'wsx'; 

所以你可以很容易地找到你的標籤路徑與foreach循環密鑰和值或aray_keys如果你想要特定標籤路徑,你知道標籤值。

+0

請檢查我的這個線程太http://stackoverflow.com/questions/11877973/how-to-sort-array-on-behalf -of-另一個-當酮陣列索引是-的串 - 間使用#comment15804679_11877973 – 2012-08-09 06:56:25

0

您需要這兩個陣列組合成關聯數組,然後使用asort()uasort(),取決於特定種類的場景。

相關問題