2013-05-03 44 views
1

我有一個動態構建的嵌套數組,我需要從中刪除一個或多個索引。使用復位後嵌套數組的問題

已經走遍了PHP信息頁面,我發現,使用

unset($quotes_array[0]['methods'][3]); 

將消除最後一組數據,在數組中。

但是,如果我嘗試使用

unset($quotes_array[0]['methods'][0]); 

或任何其他組除了最後,它弄亂被從陣列生成的輸出。

例如,如果我有a,b,c,d:我可以刪除d沒有問題,但是如果我嘗試刪除, 我得到一個空白的單選按鈕後跟b,c,d缺少全部處理陣列數據時一起使用。

我假設我需要對數組進行重新索引,但是到目前爲止我所做的每一次嘗試都沒有給出所需的結果,很可能是因爲我重新索引了$ quotes_array,而實際上我需要重新索引的數據是在「方法」指標內。

有沒有辦法解決這個問題?

回答

0

取消設置first element很容易,如果你使用array_shift。 array_shift將彈出第一個元素併爲您重新索引您的數組。

array_shift($quotes_array[0]['methods']); 

如果需要取消設置something in the middle(如[2]選自[3])可以使用array_values。首先取消你想要移除的元素,然後用array_values重新索引它們。

unset($quotes_array[0]['methods'][2]); 
array_values($quotes_array[0]['methods']); 

,如果你想刪除你可以使用array_pop數組的last element。 array_pop將彈出陣列中的最後一個元素。在這種情況下不需要重新索引。

array_pop($quotes_array[0]['methods']); 
+0

謝謝塞繆爾。使用array_shift作爲第一個元素實際上並不工作,但我最終得到了所有空白單選按鈕,但未設置($ quotes_array [0] ['methods'] [0]); $ quotes_array [0] ['methods'] = array_values($ quotes_array [0] ['methods']);爲我做了詭計。如果你想刪除2和3,他們可以逗號分隔,或者我使用兩次未設置?接受你的答案作爲它的一部分解決了我的問題。 – 2013-05-03 01:34:07

+0

你可以使用逗號來取消任意數量的變量。 – 2013-05-03 01:37:03

+0

嗨塞繆爾。雖然它看起來能夠正確顯示,但將第一個元素移除並重新索引會導致一個問題,即從數組數據填充的單選按鈕不會將任何信息傳遞到下一頁。你能看出爲什麼你所建議的array_shift代碼不起作用嗎? – 2013-05-03 02:48:28

0

嘗試

array_values($quotes_array[0]['methods']);