2

Hi what is the difference between array_shift and unset in associative array?

I understand how in a normal array, if you use array_shift, the key is still there and only the first value goes away but in associative array, I don't see any difference between array_shift and unset.

below is the code example:

    $a=array("a"=>"red","b"=>"green","c"=>"blue");
    $key=key($a);
    unset($a[$key]);
    print_r ($a);

    //result: Array ( [b] => green [c] => blue )

    $b=array("a"=>"red","b"=>"green","c"=>"blue");
    array_shift($b);
    print_r ($b);

    //result: Array ( [b] => green [c] => blue )
3
  • 1
    array_shift() is specifically for shifting the element off the beginning of the array, and returning it. unset() unsets a variable. read the documentation - php.net/manual/en/function.array-shift.php - php.net/manual/en/function.unset.php Commented Aug 3, 2016 at 9:12
  • You're right, both versions achieve the same things. Sometimes there are several ways to achieve one result. Commented Aug 3, 2016 at 10:07
  • But what is the best way? My feeling is that with array_shift I could save a step to get the data and clean it from the array. If you don't want the first data, with unset you can do it easily. Commented Feb 6, 2024 at 11:36

1 Answer 1

1

array_shift will return the head of your array (in this instance entry "a")

while unset will remove an element by its key, say unset($a['b']) will leave you with Array ( [a] => red [c] => blue )

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.