php删除数组最后一个元素使用什么方法(教你删除数组最后一位)

   日期:2022-02-23     文章发布:文章发布    网络转载:生活号    
核心提示:引言 PHP数组操作,之前我们讲了如何根据值,进行多维数组的排序。今天说一说,如何根据值,进行数组元素的删除。 学习时间 假设有一个一维数组,单纯的数字数组。为了简化问题,我们假设数组元素没有重复项。 $messages=[312,401,1599,3,...]; 那么该如何移除“401”这个元素呢? 最简单的办法,应该使用array_search和unset两个函数完成,代码这样写: i...
移动站源标题:http://mip.818114.com/news/item-175186.html

引言

PHP 数组操作,之前我们讲了如何根据值,进行多维数组的排序。今天说一说,如何根据值,进行数组元素的删除。

学习时间

假设有一个一维数组,单纯的数字数组。为了简化问题,我们假设数组元素没有重复项。

$messages = [312, 401, 1599, 3, ...];

那么该如何移除 “401”这个元素呢?

最简单的办法,应该使用 array_search 和 unset 两个函数完成,代码这样写:

if (($key = array_search($del_val, $messages)) !== false) {
    unset($messages[$key]);
}

函数 array_search 是在数组中搜索给定的值,如果成功则返回相应的键名。 如果没有找到匹配的值,则返回false。

我们使用变量 $key 获取 array_search 的返回值,如果不是 false,那么就是存在。然后调用 unset 函数进行删除即可。

需要注意的是,比较运算符一定是使用“!==”这个不全等于号,否则如果返回了数组索引 0,也会被判断为空,即 0 == false。

其他方法

换一种方法处理。我们尝试使用 array_diff 函数,计算差集,可以删除任意多个元素的值:

array_diff( [312, 401, 15, 401, 3], [401] )

但是这个函数会有副作用,就是返回值是新的数组,保持索引键值不变。同时,原数组内容保持不变。

深入使用

上面我们给定的前提非常简单,就是加入数组内都是不同的数据。实际应用中,很难保证这一点。除非是模型返回的主键,或者做了 unique 约束的字段,否则不能保证数据集内没有相同的值。

手册上也说了,这样根据值移除数据内所有对应元素的,应该使用 array_keys 函数。

foreach (array_keys($messages, 401, true) as $key) {
    unset($messages[$key]);
}

函数 array_keys 第三个参数为可选项,用于标记是否严格筛选模式。

写在最后

本文通过不同的方法,演示了如何从数组中,根据值移除相应元素的方法。

Happy coding :_)

免责声明:本网部分文章和信息来源于互联网,本网转载出于传递更多信息和学习之目的,并不意味着赞同其观点或证实其内容的真实性,如有侵权请通知我们删除!(留言删除
 
 
更多>同类行业

同类新闻
最新资讯
最新发布
最受欢迎
网站首页  |  黄页  |  联系方式  |  信息  |  版权隐私  |  网站地图  |  API推送  |  网站留言  |  RSS订阅  |  违规举报  |  京ICP备2000095号