PHP Functions – Part 1
I’ve been working with PHP for several years, dare I say a decade at this point, and I’m still surprised at functions I’ve never or rarely used. In an attempt to share in my delight of discovering these gems and hopefully enlighten others to some very helpful functions, I’m going to try to start a series of quick articles explaining various PHP functions. This first part will go over four very inter-related array functions.
Pop, Push, Shift, Unshift#anchor
Gotta love the naming conventions sometimes, these make me think of a Daft Punk song. Anyways, these are four array functions that I like to keep lumped together in my mind as they do very similar tasks. Here they are in the order I’m using them in the forthcoming example:
array_shift
– Takes the first variable off the array and returns itarray_pop
– Takes the last variable off the array and returns itarray_push
– Adds a variable onto the end of the array and returns the array countarray_unshift
– Adds a variable onto the beginning of the array and returns the array count
One thing worth noting that I find helps me remember these functions without having to look them up constantly. The first pair (array_pop
and array_shift
) and the second pair (array_push
and array_unshift
) do the same things, the only distinctions are whether it’s targeting the beginning or the end of the array and the returned value. Function array_pop
and array_shift
return the variable that was removed from the array, array_push
and array_unshift
return the array count after the addition was made.
Here’s an example that uses all four functions mentioned here to modify an array.
$input = array(0, 1, 2, 3, 4, 5);
echo '
<strong>Starting Array</strong>
<code>$input = array (' . implode(', ', $input ) . ')</code>
';
$result = array_shift($input);
echo '
<strong>Using array_shift</strong> - <em>Takes the first variable off the array and returns it</em>
<code>$result = array_shift($input);</code>
<strong>Result:</strong>
<code>$input = array (' . implode(', ', $input ) . ')</code>
<code>$result = ' . $result . '</code>
';
$result = array_pop($input);
echo '
<strong>Using array_pop</strong> - <em>Takes the last variable off the array and returns it</em>
<code>$result = array_pop($input);</code>
<strong>Result:</strong>
<code>$input = array (' . implode(', ', $input ) . ')</code>
<code>$result = ' . $result . '</code>
';
$result = array_push($input, 5);
echo '
<strong>Using array_push</strong> - <em>Adds a variable onto the end of the array and returns the count of the array</em>
<code>$result = array_push($input, 5);</code>
<strong>Result:</strong>
<code>$input = array (' . implode(', ', $input ) . ')</code>
<code>$result = ' . $result . '</code>';
$result = array_unshift($input, 0);
echo '
<strong>Using array_unshift</strong> - <em>Adds a variable onto the beginning of the array and returns the count of the array</em>
<code>$result = array_unshift($input, 0);</code>
<strong>Result:</strong>
<code>$input = array (' . implode(', ', $input ) . ')</code>
<code>$result = ' . $result . '</code>
';
?>
This code returns:
Starting Array
$input = array (0, 1, 2, 3, 4, 5)
Using array_shift – Takes the first variable off the array and returns it
$result = array_shift($input);
Result:
$input = array (1, 2, 3, 4, 5)
$result = 0
Using array_pop – Takes the last variable off the array and returns it
$result = array_pop($input);
Result:
$input = array (1, 2, 3, 4)
$result = 5
Using array_push – Adds a variable onto the end of the array and returns the count of the array
$result = array_push($input, 5);
Result:
$input = array (1, 2, 3, 4, 5)
$result = 5
Using array_unshift – Adds a variable onto the beginning of the array and returns the count of the array
$result = array_unshift($input, 0);
Result:
$input = array (0, 1, 2, 3, 4, 5)
$result = 6
A bit cyclical I admit, but it gets the point across. We removed the first then last values from the array and then turned around and added them back in. So we end up with the same array values that we started with.
Stay tuned, in Part 2 I’ll be talking about a few more underutilized array functions.
Need help with an upcoming project?
I'd love to hear more about what you have coming up and how I can help bring it to life! My earliest availability is currently Q1 2025.
Get in Touch