Home >Backend Development >PHP Problem >How to delete the value of a one-dimensional array in php
php method to delete the value of a one-dimensional array: 1. Delete the value of a one-dimensional array through a custom for loop; 2. Use "array_search" and "array_splice" to achieve deletion.
The operating environment of this article: windows7 system, PHP7.1 version, DELL G3 computer
php deletes a value element in a one-dimensional array Operation method
1. Write your own for loop
Remove the value of the $tmp element from the array
<?php $tmp = '324'; $arr = array( '0' => '321', '1' => '322', '2' => '323', '3' => '324', '4' => '325', '5' => '326', );
Code
foreach( $arr as $k=>$v) { if($tmp == $v) unset($arr[$k]); } print_r($arr); ?>
At this time
Array ( [0] => 321 [1] => 322 [2] => 323 [4] => 325 [5] => 326 )
To reset the index, add a sentence
foreach( $arr as $k=>$v) { if($tmp == $v) unset($arr[$k]); } $arr = array_values($arr); print_r($arr); ?>
The result at this time
Array ( [0] => 321 [1] => 322 [2] => 323 [3] => 325 [4] => 326 )
array_merge() can also achieve the same effect
foreach( $arr as $k=>$v) { if($tmp == $v) unset($arr[$k]); } $arr = array_merge($arr); print_r($arr); ?>
The result at this time
Array ( [0] => 321 [1] => 322 [2] => 323 [3] => 325 [4] => 326 )
2. Prioritize using PHP’s built-in functions, because they are implemented in C and are more efficient than writing them yourself.
Use array_search and array_splice, where array_splice automatically resets the sequence value.
$key=array_search($tmp ,$arr); array_splice($arr,$key,1); var_dump($arr);
Result at this time
Array ( [0] => 321 [1] => 322 [2] => 323 [3] => 325 [4] => 326 )
Best Practice
$arr = array_merge(array_diff($arr, array($tmp))); var_dump($arr);
Result
Array ( [0] => 321 [1] => 322 [2] => 323 [3] => 325 [4] => 326 )
Here, if the array elements are complex data structures, comparison can also be achieved. Of course the data itself is still one-dimensional.
In the above example, $tmp is a value. If $tmp is an array or other complex data structure, delete all elements contained in $tmp from $array. The above method is also valid
$arr = array_merge(array_diff($arr, $tmp)); var_dump($arr);
Recommended learning: "PHP Video Tutorial"
The above is the detailed content of How to delete the value of a one-dimensional array in php. For more information, please follow other related articles on the PHP Chinese website!