Home > Article > Backend Development > The difference between unset and array_splice in deleting elements in an array in PHP_PHP Tutorial
Deleting array elements in PHP is very simple, but sometimes deleting an array requires some sorting of the index. We will Related functions are used. Here we will introduce the difference between using unset and array_splice to delete elements in an array
If you want to delete an element in an array, you can use unset directly, but the index of the array will not be rearranged:
$arr = array('a','b','c','d');
unset($arr[1]);
print_r($arr);
?>
The result is:
Array ( [0] => a [2] => c [3] => d )
So how can the missing elements be filled and the array re-indexed? The answer is array_splice():
$arr = array('a','b','c','d');
array_splice($arr,1,1);
print_r($arr);
?>
The result is:
Array ( [0] => a [1] => c [2] => d )
Delete specific elements in the array
$arr2 = array(1,3, 5,7,8);
foreach ($arr2 as $key=>$value)
{
if ($value === 3)
unset($arr2[$key]);
}
var_dump($arr2);
?>
Supplementary deletion of empty arrays
Example:
$array = ('a' => "abc", 'b' => "bcd",'c' =>"cde",'d' =>"def",'e' =>"");
array_filter($array);
echo "
";<p> </p> <p> print_r($array);</p> <p> ?></p> <p> 结果:</p> <p> Array (</p> <p> [a] => abc</p> <p> [b] => bcd</p> <p> [c] => cde</p> <p> [d] => def</p> <p> )</p> <p> 总结</p> <p> array_splice()函数删除的话,数组的索引值也变化了。</p> <p> unset()函数删除的话,数组的索引值没有变化。</p>