首页 > 编程语言 >PHP删除数组元素的三种常用方法

PHP删除数组元素的三种常用方法

时间:2022-08-24 13:35:38浏览次数:97  
标签:数组 删除 ar key diff array PHP

在PHP网络编程中,你可能需要删除数组中的一些元素,在本文章中,我们将演示并描述php如何删除数组元素。

文章一共列举了三种方法来实现这一功能:

  1. php unset()函数
  2. php array_splice()函数
  3. php array_diff()函数

 

PHP unset()函数删除数组元素

如果要从数组中删除元素,则可以简单地使用该php unset() 函数.

以下示例显示如何从关联数组和数字数组中删除元素。

$num_array = ["Amanda", "John", "Kelly", "Megan", "Henry"];
$asc_array = ["first" => "Amanda", "second" => "John",
              "third" => "Kelly", "fourth" => "Megan",
              "fifth" => "Henry"];

$key = array_search("John", $num_array);
unset($num_array[$key]);
print_r($num_array);
/* Output —
Array
(
    [0] => Amanda
    [2] => Kelly
    [3] => Megan
    [4] => Henry
) */

$key = array_search("John", $asc_array);
unset($asc_array[$key]);
print_r($asc_array);
/* Output —
Array
(
    [first] => Amanda
    [third] => Kelly
    [fourth] => Megan
    [fifth] => Henry
) */

注意,如果你使用 unset() 方法,它是不会改变其他的键(key),如果你想对其他的键(key)重新整理排序,可以使用 array_values()。

范例:

<?php
   $my_arr = array( 'this', 'is', 'a', 'sample', 'only');
   echo"The array is ";
   var_dump($my_arr);
   unset($my_arr[4]);
   echo"The array is now ";
   $my_arr_2 = array_values($my_arr);
   var_dump($my_arr_2);
?>

输出:

The array is array(5) {
   [0]=>
   string(4) "this"
   [1]=>
   string(2) "is"
   [2]=>
   string(1) "a"
   [3]=>
   string(6) "sample"
   [4]=>
   string(4) "only"
}
The array is now array(4) {
   [0]=>
   string(4) "this"
   [1]=>
   string(2) "is"
   [2]=>
   string(1) "a"
   [3]=>
   string(6) "sample"
}

 

PHP array_splice()函数删除数组元素

array_splice 函数可用于删除数组中任何位置的元素。下面的示例演示了从数组偏移量3(即第4个元素)开始删除两个元素:

$ar = array('Rudi', 'Morie', 'Halo', 'Miki', 'Mittens', 'Pumpkin', 'Coco');
$r = array_splice($ar, 3, 2);
// view array returned by array_splice (array of removed elements)
print_r($r);
/* Array
(
    [0] => Miki
    [1] => Mittens
)
*/

// view modified $ar
print_r($ar);
/* Array
(
    [0] => Rudi
    [1] => Morie
    [2] => Halo
    [3] => Pumpkin
    [4] => Coco
)
*/

如果省略第三个参数,则删除从偏移量到素组末尾的所有元素。示例如下:

$ar = array('Rudi', 'Morie', 'Halo', 'Miki', 'Mittens', 'Pumpkin', 'Coco');
// remove from offset 4 to end of $ar
$r = array_splice($ar, 4);
// view array returned by array_splice
print_r($r);
/* Array
(
    [0] => Mittens
    [1] => Pumpkin
    [2] => Coco
) */

// view modified $ar
print_r($ar);
/* Array
(
    [0] => Rudi
    [1] => Morie
    [2] => Halo
    [3] => Miki
) */

下面的示例演示如何使用负偏移量从数组中删除最后三个元素:

$ar = array('Rudi', 'Morie', 'Halo', 'Miki', 'Mittens', 'Pumpkin', 'Coco');
// array_splice with negative offset
$r = array_splice($ar, -3, 3);

// display array returned by array_splice
print_r($r);
/* Array
(
    [0] => Mittens
    [1] => Pumpkin
    [2] => Coco
) */

// view modified $ar
print_r($ar);
/* Array
(
    [0] => Rudi
    [1] => Morie
    [2] => Halo
    [3] => Miki
) */

 

PHP array_diff()或array_diff_key()函数删除数组元素

如果你想删除多维数组中的元素并且你又不想多次调用unset()和array_splice(),这时你可以使用array_diff() 或者 array_diff_key(),array_diff() 和 array_diff_key()区别在于array_diff()是根据值删除,而array_diff_key()根据键删除。

如果你知道要删除的数组元素, 你可以使用 array_diff()。

$array = [0 => "a", 1 => "b", 2 => "c", 3 => "c"];
$array = array_diff($array, ["a", "c"]);
                          // └────────┘
                          // Array values which you want to delete

结果:

[
    [1] => b
]

如果你知道要删除的数组元素的键(key), 你可以使用 array_diff_key()。你需要在函数的第二个参数的键值位置输入要删除的键,值不需要,可随意。

$array = [0 => "a", 1 => "b", 2 => "c"];
$array = array_diff_key($array, [0 => "xy", "2" => "xy"]);
                               // ↑           ↑
                               // Array keys which you want to delete

结果:

[
    [1] => b
]

以上就是本文的全部内容,希望对大家的学习有所帮助。更多教程请访问码农之家

标签:数组,删除,ar,key,diff,array,PHP
From: https://www.cnblogs.com/myhomepages/p/16619548.html

相关文章

  • PHP array_chunk()函数
    array_chunk()函数是PHP中的内置函数,用于根据传递给函数的参数将数组拆分为给定大小的部分或块。最后一个块可能包含的元素少于块的所需大小。语法:arrayarray_chunk($ar......
  • PHP多维数组按照某个字段进行排序
    作为开发人员,您可能会遇到这种情况,即数据库中有一个按特定顺序获取的数据列表,但您希望在前端显示这些项目时安装期中某一个字段进行排序。比如数组:$mylist=array(arra......
  • PHP+AJAX实现异步上传文件
    文件上传功能是动态Web应用程序的常用功能。通常,php采用提交表单并刷新页面的方法上传文件。但是,如果您想提供更好的用户体验,则可以使用jQuery和Ajax来上传文件而无需刷新......
  • 艾思软件「aisisoft.com.cn」出品,前后端ThinkPHP分离技术框架
    GIT址址:https://gitee.com/aisisoft/ai-admin 基于thinkphp6,vue2,element-ui.一款简单实用的客户管理,案例展示系统后端1.基于thinkphp6+vue2+ElementUI......
  • Linux删除MySQL
    查看进程rpm-qa|grep-imysql删除进程rpm-ev--nodeps+进程服务删除mysql文件夹find/-namemysql删除文件夹rm-rf+文件夹路径删除配置文件rm......
  • 删除RAID
    场景当服务器不需要RAID或重新配置RAID时,要先删除当前RAID配置来释放硬盘。LSISAS2208(Legacy/Dual)操作步骤步骤1通过远程虚拟控制台登录到服务器的实时操作桌面。......
  • SQL学习——数据操纵(DML)插入、修改、删除
    本章将介绍,SQL中如何修改数据(增,删,改)。当我们去添加、更新或者删除数据库中的数据时需要使用DML语句。DML依据的一个集合构成了一个被称为事务的逻辑单元。1、插......
  • PHP-PHP升级
    开始升级PHP查看版本修订记录版本是否发布2020-09-23v1.0否CentOS7下安装PHP默认是5.4的,但是有些框架要求PHP的版本得在5.4以上,现在的框架大多要求ph......
  • 1460. 通过翻转子数组使两个数组相等
    1460.通过翻转子数组使两个数组相等给你两个长度相同的整数数组 target 和 arr 。每一步中,你可以选择 arr 的任意非空子数组 并将它翻转。你可以执行此过程任......
  • JS基础:数组、函数、对象
    字符串要用英文双引号括起来。字符串与其他类型数据之间用加号+连接起来//--------------------------------------------------------JS中定义声明变量是用关键字var,J......