我的標題有點混亂。我會盡力解釋我想要做的事情。 我與其它陣列的陣列:搜索並替換數組中的數組
array (size=16)
0 =>
array (size=4)
'value' => string 'apple.png' (length=9)
'x' => int 3
'y' => int 4
'status' => boolean false
1 =>
array (size=4)
'value' => string 'apple.png' (length=9)
'x' => int 2
'y' => int 3
'status' => boolean false
2 =>
array (size=4)
'value' => string 'cake.png' (length=8)
'x' => int 3
'y' => int 1
'status' => boolean false
然後我有隱藏的輸入的一種形式:
'<input type="hidden" value="x:'.$i.';y:'.$j.'" name="coords"/>';
當表單提交我得到的值和提取的座標。然後我做一個循環。
foreach($this->mapBoard as $block)
{
if($block['x'] == $x && $block['y'] == $y)
{
$block['status'] = true;
return $block;
}
else
{
continue;
}
}
主要數組稱爲'地圖板'。我的問題是當我找到正確的數組元素時,如何更改它的狀態的值鍵。並把它放回mapBoard。
我不太清楚PHP中的指針,但'foreach($ this-> mapBoard as&$ block)'應該可以工作 – Imperative
@Imperative在foreach中使用引用總是一個壞主意,因爲它可能會導致通過覆蓋它丟失列表中最後一項中的數據。 – Kalyan02
@Kalyan你能告訴我們一些例子嗎?在[PHP手冊](http://php.net/manual/en/control-structures.foreach.php)中也提出了使用該引用的方法:「爲了能夠直接修改循環內的數組元素在$ value之前與&。在這種情況下,值將通過引用分配。「 – Stano