1

我有一个动态构建的嵌套数组,我需要从中删除一个或多个索引。

在浏览了 php 信息页面后,我发现使用

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

将删除数组中的最后一组数据。

但是,如果我尝试使用

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

或除最后一个之外的任何其他集合,它会弄乱从数组生成的输出。

例如,如果我有 a、b、c、d:我可以毫无问题地删除 d,但如果我尝试删除 a,我会得到一个空白单选按钮,后跟 b,c,当数组数据时,d 一起丢失被处理。

我假设我需要重新索引数组,但到目前为止我所做的每一次尝试都未能给出所需的结果,很可能是因为我正在重新索引 $quotes_array,而我实际需要重新索引的数据是在 '方法的索引。

有没有办法解决这个问题?

4

2 回答 2

0

尝试

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

于 2013-05-03T01:21:41.597 回答
0

first element如果您使用array_shift ,取消设置很容易。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']);
于 2013-05-03T01:21:54.833 回答