2014-05-13 44 views
-1

我已經將一個字符串分割成數組,並給出了一個分隔符。所以,這個新的陣列創建,將包含,我想爲索引使用另一個給定的陣列。如何使用一個數組中的字符串值作爲PHP中另一個數組的索引

有這樣的情況:

// my given array 
$array['key1']['key2']['a_given_key']['some_other_given_key'] = 'blablabl'; 

// the value of my given array 
$value = $array['key1']['key2']['a_given_key']['some_other_given_key']; 

$string = "key1;key2"; 
$keys = explode(";", $string); 

我想dinamically打電話(我的PHP腳本的執行過程中)給定數組的值,但是,使用作爲指標的所有值數組$keys,並且還附加了我給定數組的索引['a_given_key']['some_other_given_key']

我希望我已經清楚。
非常感謝。

+0

你想建立一個嵌套級別由'$ keys'的長度動態決定的數組嗎? –

+0

向我們展示您的代碼 - 您是如何試圖實現您想要的 –

+0

我擁有'$鑰匙'。我想在'$ array'中使用所有這些值作爲索引來調用'$ array'中的特定值。 –

回答

0

爲了使它工作,你必須使用引用。下面的代碼應該工作,你希望:

<?php 

    $string = "key1;key2;key3;key4"; 
    $keys = explode(";", $string); 


    $array['key1']['key2']['key3']['key4']['a_given_key']['some_other_given_key'] = 'blablabl'; 

    $ref = & $array;        

    for ($i=0, $c = count($keys); $i<$c ; ++$i) { 
     $ref = &$ref[$keys[$i]];  
    } 

    echo $ref['a_given_key']['some_other_given_key']; 

    $value = $ref['a_given_key']['some_other_given_key']; 

    echo $value; 


?> 

我想補充一點,剛纔使用的參考,你應該使用取消它後:

unset($ref); 

如果你不這樣做,很多行以後你運行例如$ref = 2;它會修改你的源數組,所以你必須記住在不再使用的時候引用未設置的引用。

+0

你做了什麼,這正是我所期待的!謝謝! :) –

相關問題