2010-10-08 113 views
0

美好的一天每個人。使用數組值作爲另一個數組鍵

我有一個規則陣列(這是的print_r結果,陣列可以具有從1到n的位置):

Array 
(
    [1] => value1 
    [2] => value2 
    [3] => value3 
) 

我已經另一個陣列別處定義爲:

$array_def['value1']['value2']['value3'] = array(
'fl' => 'field1', 
'f2' => 'field2', 
); 

使用第一個數組結果,我如何檢查$ array_def是否存在?換句話說,我需要使用平面數組值來檢查多維數組的對應性是否存在;請記住,值可以在第一個數組中重複,因此使用鍵翻轉值不是一個選項,因爲它會碰撞並刪除重複的值。

在此先感謝。

回答

1

你可以這樣來做:

$a = array(1=>'value1', 2=>'value2', 3=>'value3'); 
$array_def[$a[1]][$a[2]][$a[3]] = array(
'fl' => 'field1', 
'f2' => 'field2', 
); 

我不認爲有任何快捷方式或特殊的內置功能來做到這一點。

+0

這是假設$ a將會始終有3個要素和$ array_def過,我的意思是,這是一個平坦的解決方案,而不是一個動態的,感謝你的努力雖然=) – Kusanagi2k 2010-10-10 15:15:12

0

爲您找到完美的功能。返回不但存在,但一個多維數組中的位置..

http://www.php.net/manual/en/function.array-search.php#47116

日期:03 - 11月,2004年11:13 太多的複製/粘貼

然後你可以遍歷您的平板陣列和foreach:

multi_array_search($ search_value,$ the_array)

+0

這似乎有點相反,OP是在尋找。 – cHao 2010-10-08 22:30:40

+0

確切地說,我需要使用數組B中的值來搜索數組A中的鍵,這會返回使用值的鍵, – Kusanagi2k 2010-10-10 15:17:19

相關問題