Re-indexing of deleted elements in the PHP array

Source: Internet
Author: User

If you want to delete an element in an array, you can use the unset directly, but what I see today is a surprise to me.

$arr = Array (' A ', ' B ', ' C ', ' d ');
Unset ($arr [1]);
Print_r ($arr);

Print_r ($arr)

After that, the result is not that, the end result is Array ([0] => a [2] => C [3] => D)

So how do you get the missing elements to be filled and the array will be indexed again? The answer is

Array_splice ():

$arr = Array (' A ', ' B ', ' C ', ' d ');
Array_splice ($arr, 1, 1);
Print_r ($arr);

Print_r ($arr), the result is array ([0] => a [1] => C [2] => D)

Deletes an array-specified element

Array_search () more practical

The Array_search () function, like In_array (), looks for a key value in the array. If the value is found, the key name of the matching element is returned. Returns False if it is not found
$array = Array (' 1 ', ' 2 ', ' 3 ', ' 4 ', ' 5 ');
$del _value = 3;
Unset ($array [Array_search ($del _value, $array)]//use unset to delete this element
Print_r ($array);
Array (' 1 ', ' 2 ', ' 4 ', ' 5 ');

But this is also true if the array is to be indexed by using foreach to iterate through the deleted array and then re-establish an array.

Related Article

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: and provide relevant evidence. A staff member will contact you within 5 working days.