如何在php中使用array_splice删除单个数组成员?
发布时间:2020-12-13 13:45:15 所属栏目:PHP教程 来源:网络整理
导读:我想我可能无法正确理解array_splice应该如何工作.我的理解是第一个参数是你的初始数组,第二个参数是要开始的元素,第三个参数是要删除/替换的元素的长度或数量. 所以,我有这个数组(print_r输出): Array ( [0] = Array ( [TypeFlag] = S [qty] = 1 [denom] =
我想我可能无法正确理解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作为余数.我究竟做错了什么?
array_splice返回由提取的元素组成的数组.
你在做: $cart = array_splice($cart,1); 因此,您要提取第二个元素(索引1)并将结果分配回$cart,覆盖原始数组. 要完全删除第二个元素,请不要将array_splice的返回值分配回$cart.所以这样做: array_splice($cart,1); 这是有效的,因为数组是通过引用函数传递的. 此外,如果您想从数组中删除单个元素,则使用unset更高效,更清晰: unset($cart[1]); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |