我有一个动态构建的嵌套数组,我需要从中删除一个或多个索引。
浏览了php信息页面后,我发现使用了
unset($quotes_array[0]['methods'][3]);
将删除数组中的最后一组数据。
但是,如果我尝试使用
unset($quotes_array[0]['methods'][0]);
或除了最后一个之外的任何其他集合,它会混乱从阵列生成的输出。
例如,如果我有a,b,c,d:我可以删除d而没有问题,但如果我尝试删除a, 我得到一个空白的单选按钮,然后是b,c,当处理数组数据时,d一起丢失。
我假设我需要重新索引数组,但到目前为止我所做的每一次尝试都未能提供所需的结果,很可能是因为我重新索引$ quotes_array,而实际需要重新索引的数据是在'方法'指数内。
有没有办法解决这个问题?
答案 0 :(得分:0)
试
array_values($quotes_array[0]['methods']);
答案 1 :(得分:0)
取消设置 first element
很容易。 array_shift将弹出第一个元素并为您重新索引数组。
array_shift($quotes_array[0]['methods']);
如果您需要取消设置 something in the middle
(例如[3]中的[2]),您可以使用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']);