php数组中删去一个元素,php – 从数组中删除一个元素

有不同的方法来删除数组元素,其中一些对于某些特定任务比其他任务更有用。

删除一个数组元素

如果你只想删除一个数组元素,你可以使用unset()或者替代array_splice()。

此外,如果你有值,不知道要删除的元素的关键,你可以使用array_search()获取密钥。

注意,当你使用unset()时,数组键不会改变/ reindex。如果你想重新索引键,你可以在unset()之后使用array_values(),它将所有键转换为从0开始的数字枚举键。

$array = array(0 => "a", 1 => "b", 2 => "c");

unset($array[1]);

//↑ Key which you want to delete

?>

输出

Array (

[0] => a

[2] => c

)

如果使用array_splice(),键将被自动重建索引,但关联键不会改变,而是会将所有键转换为数字键的array_values()。

另外,array_splice()需要偏移量,而不是键!,作为第二个参数。

$array = array(0 => "a", 1 => "b", 2 => "c");

array_splice($array, 1, 1);

//↑ Offset which you want to delete

?>

输出

Array (

[0] => a

[1] => c

)

array_splice()与unset()相同,通过引用获取数组,这意味着你不想将这些函数的返回值分配回数组。

删除多个数组元素

如果要删除多个数组元素,并且不想多次调用unset()或array_splice(),则可以使用函数array_diff()或array_diff_key(),这取决于是否知道元素的值或键您要删除。

如果知道要删除的数组元素的值,那么可以使用array_diff()。像以前一样unset()它不会改变/ reindex数组的键。

$array = array(0 => "a", 1 => "b", 2 => "c");

$array = array_diff($array, ["a", "c"]);

//└────────┘→ Array values which you want to delete

?>

输出

Array (

[1] => b

)

如果你知道你想要删除的元素的键,那么你想使用array_diff_key()。在这里你必须确保你传递的键作为键在第二个参数,而不是值。否则你必须翻转数组与array_flip().也在这里键不会改变/ reindex。

$array = array(0 => "a", 1 => "b", 2 => "c");

$array = array_diff_key($array, [0 => "xy", "2" => "xy"]);

//↑ ↑ Array keys which you want to delete

?>

输出

Array (

[1] => b

)

另外,如果你想使用unset()或array_splice()删除多个相同的值的元素,你可以使用array_keys()获取所有的键为一个特定的值,然后删除所有的元素。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值