2011-02-02 108 views
0

我的問題似乎很基本,但我無法繞過它。我嘗試用另一個數組替換多維數組中的第二個值,發生這種情況,但是我在我的foreach循環中丟失了它。一切都只是一個例子。因此,在這裏發生像缺少引號一樣的失敗。原文是班級內的一項功能。謝謝!替換多維數組中的數組值 - 基本Q

這是配置陣列的樣子:

$config_arr = array( 
    'foo_a' => array('foo_a_singular', 'foo_a_plural', array('assign_me_aa', 'assign_me_ab')); 
    'foo_b' => array('foo_b_singular', 'foo_b_plural', 'assign_me_b') 
); 

該如何處理髮生的情況:

function process_foo($config_arr) { 
    foreach ($config_arr as $config_data) { 
    $replacement_data = array('bar_me', 'bar_her', 'bar_some'); 
    $config_data[1] = $replacement_data; 
    var_dump($config_data); 
    } 
    print_r($config_arr); 
} 

var_dump我表明我更換/添加的數據,但print_r告訴我沒有任何事情發生。

回答

0

要點是,我試圖用一個數字索引$config_data[1]作爲關聯數組:'foo_b' => array('foo_b_singular', 'foo_b_plural', 'assign_me_b'),它永遠不會工作。你必須使用像key()array_keys()

1

我會在一分鐘內回答這個問題,但是範圍對於config_data是本地的,或者您只能讀取而不能寫入。我以前遇到過這個問題。你必須在循環中使用實際的config_arr,這可以通過一個計數器變量來完成。別人可能會知道更好/不同的方式來做到這一點。

+0

`private $ names;公共函數__construct($ config_arr){$ this-> names = $ config_arr; }`很像我班的開始,所以它存儲在那裏。然後,我通過一個接一個地返回$ config_arr。我也試過`私人$櫃檯; (在__construct :) $ this-> counter = count($ config_arr);`並用它循環。有趣的是:沒有區別... – kaiser 2011-02-02 21:12:40