我有一个动态构建的嵌套数组,我需要从中删除一个或多个索引。
在浏览了php信息页面后,我发现使用unset($quotes_array[0]['methods'][3]);
将删除数组中最后一组数据。
但是,如果我尝试使用
unset($quotes_array[0]['methods'][0]);
或除最后一个之外的任何其他集合,它会扰乱从数组生成的输出。
例如,如果我有a,b,c,d:我可以毫无问题地删除d,但如果我试图删除a,当处理数组数据时,我得到一个空白的单选按钮,后面跟着b,c, d一起丢失。
我假设我需要重新索引数组,但到目前为止我所做的每一次尝试都未能给出所需的结果,最有可能的原因是我重新索引$quotes_array,而我实际上需要重新索引的数据是在'方法'索引。
有办法解决这个问题吗?
如果使用array_shift,则很容易取消 first element
的设置。Array_shift将弹出第一个元素并为您重新索引数组。
array_shift($quotes_array[0]['methods']);
如果您需要取消 something in the middle
的设置(例如[2]out of[3]),您可以使用array_values。首先取消要删除的元素的设置,然后使用array_values重新索引它们。
unset($quotes_array[0]['methods'][2]);
array_values($quotes_array[0]['methods']);
如果你想删除数组的 last element
,你可以使用array_pop。Array_pop将从数组中弹出最后一个元素。在这种情况下不需要重新索引。
array_pop($quotes_array[0]['methods']);
try
array_values($quotes_array[0]['methods']);