Home >Backend Development >PHP Tutorial >Detailed explanation of deleting elements in arrays in PHP (unset, array_splice) Summary of additions and deletions of array elements

Detailed explanation of deleting elements in arrays in PHP (unset, array_splice) Summary of additions and deletions of array elements

不言
不言Original
2018-05-15 17:44:333580browse

Deleting array elements in

is very simple, mainly unset and array_splice. However, if they are used together for a long time, sometimes they cannot tell the difference. Today I specially summarize it to increase memory and make it easier to use.

The difference is like this in many placesunset,array_splice

If the array_splice() function is deleted, the index value of the array will also change.
If the unset() function is deleted, the index value of the array will not change.

In fact, I think there is a prerequisite for such a distinction.

[php] view plain copy

$arr0=array('a','b','c','d','f');  
$arr1=array(  
        'name'=>'lidequan',  
        'tel'=>'131****1234',  
        'height'=>'175',  
        'weight'=>'65'  
    );  
$arr2=array(  
        1=>'lidequan',  
        3=>'131****1234',  
        4=>'175',  
        6=>'65'  
    );  
$arr3=array(  
        'a'=>'lidequan',  
        3=>'131****1234',  
        4=>'175',  
        10=>'1705',  
        'b'=>'65'  
    );  
//1. array_splice($arr0,2,1);   
//2. unset($arr0[2]);  
  
//3. array_splice($arr1,2,1);  
//4. unset($arr1['height']);  
  
//5. array_splice($arr2,2,1);  
//6. unset($arr1[4]);  
  
//7.array_splice($arr3,2,1);

The execution results of 1 and 2 are different

1 Execution result:

[php] view plain copy

array (size=4)  
  0 => string 'a' (length=1)  
  1 => string 'b' (length=1)  
  2 => string 'd' (length=1)  
  3 => string 'f' (length=1)

2 Execution result:

[php] view plain copy

array (size=4)  
  0 => string 'a' (length=1)  
  1 => string 'b' (length=1)  
  3 => string 'd' (length=1)  
  4 => string 'f' (length=1)

The execution results of 3 and 4 are the same

[php] view plain copy

array (size=3)  
  'name' => string 'lidequan' (length=8)  
  'tel' => string '131****1234' (length=11)  
  'weight' => string '65' (length=2)

The execution results of 5 and 6 are different

The execution results of 5 are as follows

[php] view plain copy

array (size=3)  
  0 => string 'lidequan' (length=8)  
  1 => string '131****1234' (length=11)  
  2 => string '65' (length=2)

6 The execution results are as follows:

[php] view plain copy

array (size=3)  
  1 => string 'lidequan' (length=8)  
  3 => string '131****1234' (length=11)  
  6 => string '65' (length=2)  

7的执行结果如下:

[php] view plain copy

array (size=4)  
  'a' => string 'lidequan' (length=8)  
  0 => string '131****1234' (length=11)  
  1 => string '1705' (length=4)  
  'b' => string '65' (length=2)

总结:这说明,unset,array_splice,在删除数组元素,数组索引值变化原理在于

unset函数是按照数组键值进行删除数组里面的元素,删除之后,不再对数组进行任何操作。

array_splice函数删除元素是依据元素在数组中的次序(次序从0开始算起),进行删除元素,删除元素之后,如果数组中存在键值为整数的元素,将这些元素,依据其在数组中次序大小,将其键值从0~n依次更新。

补充:

关于数组添加删除元素操作

1.从头开始添加元素 

array_unshift($a,"blue");

2.从尾添加元素   array_push()

array_push($a,"blue");
$a[]='blue';

3.从头开始删除元素

array_unshift($a);

4.从尾开始删除元素

array_pop($a);

5.删除指定位置的元素

array_splice($a,2,1);

6.删除指定键值的元素

unset($a[2]);

The above is the detailed content of Detailed explanation of deleting elements in arrays in PHP (unset, array_splice) Summary of additions and deletions of array elements. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn