如何在php中使用array_splice删除单个数组成员?
我想我可能无法正确理解array_splice应该如何工作。我的理解是第一个参数是你的初始数组,第二个参数是要开始的元素,第三个参数是要删除/替换的元素的长度或数量。
所以,我有这个数组(print_r输出):
Array (
[0] => Array ( [TypeFlag] => S [qty] => 1 [denom] => 25 [certMessage] => [totalPrice] => 25 )
[1] => Array ( [TypeFlag] => C [qty] => 2 [denom] => 25 [certMessage] => [totalPrice] => 50 )
[2] => Array ( [TypeFlag] => V [qty] => 2 [denom] => 25 [certMessage] => test [totalPrice] => 50 ) )
我想完全删除第二个元素(索引为1的数组; TypeFlag = C等)我不想用任何东西替换它;只是为了返回剩下的两个元素的数组。我试过这个(其中cart是数组名称):
$cart = array_splice($cart, 1,1);
但是当我做一个print_r时,我最终得到的是:
Array ( [0] => Array ( [TypeFlag] => C [qty] => 2 [denom] => 25 [certMessage] => [totalPrice] => 50 ) )
所以它似乎是删除0和2,并留下1作为余数。我究竟做错了什么?
没有找到相关结果
已邀请:
5 个回复
募磷
返回由提取的元素组成的数组。 你在做:
因此,您正在提取第二个元素(索引1)并将结果分配回
,覆盖原始数组。 要完全删除第二个元素,请不要将
的返回值分配回
。所以这样做:
这是有效的,因为数组是通过引用函数传递的。 此外,如果您想从阵列中删除单个元素,使用
会更高效,更清晰:
敦肌
或者干脆
痰嫉
http://php.net/manual/en/function.unset.php
播匣扦阔食
排列 ( [0] =>一 [1] =>两个 [2] =>三 [3] =>四 )
排列 ( [0] =>一 [1] =>两个 [3] =>四 ) 而array_splice将重新索引数组
排列 ( [0] =>一 [1] =>两个 [2] =>四 )
朗排谎纷瘟