我要麼通過疲勞障礙工作,要麼我對PHP的理解存在嚴重的空白。以下是我需要做對嵌套數組元素的修改不會停留
- 我有數組的數組(甲)(一個)
- 我需要通過爲每個所述內陣列的外部陣列和
- 迭代我需要添加一個新元素,而這個元素又是一個數組
- 這是我每天多次出現的代碼,並且我預料到它沒有什麼問題。然而,出乎我的意料,而我可以修改一個我不能讓這些修改棍子出現在一個
下面是代碼
function fillRouteNames($routes,$export)
{
for($i=0;$i < count($routes);$i++)
{
$route = $routes[$i];
trigger_error(gettype($route));//shows Array, as expected
$disps = $route['d'];
$nd = array();
foreach($disps as $disp) $nd[] = fxnName($disp,$export);
//now I have the new element I want to add
$route['nd'] = $nd;
trigger_error(json_encode($route));
/as expected the output shows the new element, nd
}
trigger_error(json_encode($routes));
//but now it is gone - it is like I never did $oute['nd'] = $nd
}
必須有這裏有一些非常明顯的錯誤,但我一直無法弄清楚。我希望這裏的某個人能夠發現這個問題。
謝謝!問題的完美總結!雖然我擔心它不能提供一個解決方案。 – DroidOS
增加了一個可能的解決方案。還有其他的解決方案:使用[本答案](http://stackoverflow.com/a/35229858/4265352)中描述的引用(引用可以使代碼以更意想不到的方式破解),將'$ (更新與否)到一個新的數組(並在循環後放棄原始數組),使用對象而不是數組等。 – axiac