array_unshift


php128 apg

PREPENDS one or more elements to the beginning of an ARRAY.





This function prepends passed elements to the front of the given $array.

The list of elements is prepended as a whole, so that the prepended elements stay in the same order.

All numerical array keys will be modified to start counting from zero while literal keys won't be changed.

Since PHP 7.3.0 this function can be calleed with only one parameter.

For earlier versions, at least two parameters were required.



<?php

int array_unshift 
arr &$array [, mix $val1, ..., $valN ] )


where,

$array The given input ARRAY

$val1 First value to prepend

...

$valN Nth value to prepend

?>

 $array 


The given input array.

Can be passed by reference.



 $val1 


The first value to be prepended.



 $valN 


The nth value to be prepended.



  1 EXERCISE   

<?php

echo 'The given ARRAY:<br><pre>';
// ARRAY UNIDIMENSIONAL ( 3 ELEMENTS )
$arr01 = [ 203040 ];

print_r($arr01);

$int01 count($arr01);

echo 
'</pre><br>INITIAL NUMBER OF ELEMENTS: ' $int01 '.<br><br>'

// ARRAY UNIDIMENSIONAL ->  
// -> FIRST ELEMENT TO INSERT
$arr01a = [ "TEN""TWENTY""THIRTY""FORTY" ];

// INTEGER -> SECOND ELEMENT TO INSERT
$int01b 10;

// FLOAT
$flo01c 8.3333;

// NULL -> THIRD ELEMENT TO INSERT
$nul01d NULL;

// RESOURCE PHP 7.4.x or OBJECT PHP 8.0.0 ->
// -> FIFTH ELEMENT TO INSERT
$var01eimagecreate(1,1);

$int01 array_unshift($arr01$arr01a$int01b
                                   
$flo01c$nul01d$var01e);

echo 
'The final ARRAY:<br><pre>';
print_r($arr01);
echo 
'</pre><br>FINAL NUMBER OF ELEMENTS: ' $int01 '.';

?>

 RESULT   

The given ARRAY:
Array
( [0] => 20
[1] => 30
[2] => 40
)

INITIAL NUMBER OF ELEMENTS: 3.

The final ARRAY:
Array
(
[0] => Array
(
[0] => TEN
[1] => TWENTY
[2] => THIRTY
[3] => FORTY
)

[1] => 10
[2] => 8.3333
[3] =>
[4] => Resource id #4 - PHP 7.4.XX
or
[4] => GdImage Object - PHP 8.0.XX
[5] => 20
[6] => 30
[7] => 40
)

FINAL NUMBER OF ELEMENTS: 8.


  2 EXERCISE   

<?php

echo 'The given ARRAY:<br><pre>';
// ARRAY ASSOCIATIVE UNIDIMENSIONAL
$arr02 = [ "e" => 20"f" => 30"5" => 40 ];

print_r($arr02);
$int02 count($arr02);
echo 
'</pre><br>INITIAL NUMBER OF ELEMENTS: ' 
                                                
$int02 '.<br><br>'

// ARRAY ASSOCIATIVE UNIDIMENSIONAL ->  
// -> FIRST ELEMENT TO INSERT
$arr02a = [ "a" => "TEN""b" => "TWENTY"
                  
"c" => "THIRTY""d" => "FORTY"] ;

// INTEGER -> SECOND ELEMENT TO INSERT
$int02b 10;

$int02 array_unshift($arr02$arr02a$int02b);

echo 
'The final ARRAY:<br><pre>';
print_r($arr02);
echo 
'</pre><br>FINAL NUMBER OF ELEMENTS: ' $int02 '.';

?>

 RESULT   

The given ARRAY:
Array ( [e] => 20 [f] => 30 [5] => 40 )

INITIAL NUMBER OF ELEMENTS: 3.


The final ARRAY:
Array ( [0] => Array ( [a] => TEN [b] => TWENTY [c] => THIRTY [d] => FORTY ) [1] => 10 [e] => 20 [f] => 30 [2] => 40 )
FINAL NUMBER OF ELEMENTS: 5.


  3 EXERCISE   

<?php

$arr03 
= array(200300400);

echo 
'The given ARRAY:<br><pre>';
print_r($arr03);
$int03 count($arr03);
echo 
'</pre><br>INITIAL NUMBER OF ELEMENTS: ' 
                                                
$int03 '.<br><br>'

$nbr03a 200;

$str03a "300";

$int03 array_unshift($arr03$nbr03a$str03a);

echo 
'The final ARRAY:<br><pre>';
print_r($arr03);
echo 
'</pre><br>FINAL NUMBER OF ELEMENTS: ' $int03 '.';

?>

  4 EXERCISE   

<?php

$arr04 
= [ 200300400'500' ];

echo 
'The given ARRAY:<br><pre>';
print_r($arr04);
$int04 count($arr04);
echo 
'</pre><br>INITIAL NUMBER OF ELEMENTS: ' 
                                                
$int04 '.<br><br>'
                                                
$bool04 FALSE;

$null04 null;

$int04 array_unshift($arr04$bool04$null04);

echo 
'The final ARRAY:<br><pre>';
print_r($arr04);
echo 
'</pre><br>FINAL NUMBER OF ELEMENTS: ' $int04 '.';

?>

  5 EXERCISE   

<?php

$a 
= array();
$s "";

var_dump(array_unshift($a$s));
echo 
'<br><br>';
var_dump($a);
echo 
'<br><br>';
var_dump(array_unshift($a$a));
echo 
'<br><br>';
var_dump($a);

?>

  6 EXERCISE   

<?php

/*
* Testing array_unshift() by giving array
* with default keys for $array argument
*/

echo "Testing array_unshift():
<br>basic functionality with default key array:<br><br>"
;

// Initialise the array
$array = array(12);

// Calling array_unshift() with default argument
$temp_array $array;
// returns element count in the resulting array 
// after arguments are pushed to
// beginning of the given array
var_dumparray_unshift($temp_array10) );
echo 
'<br><br>';
// dump the resulting array
var_dump($temp_array);
echo 
'<br><br>';
// Calling array_unshift() with optional arguments
$temp_array $array;
// returns element count in the resulting array 
// after arguments are pushed to
// beginning of the given array
var_dumparray_unshift($temp_array222"hello"12.33) );
echo 
'<br><br>';
// dump the resulting array
var_dump($temp_array);

?>

  7 EXERCISE   

<?php

/*
* Testing array_unshift() by giving associative
* arrays for $array argument
*/

echo "Testing array_unshift():
<br>basic functionality with associative array:<br><br>"
;

// Initialise the array
$array = ['f' => "first""s" => 'second'=> "one"=> 'two'];

// Calling array_unshift() with default argument
$temp_array $array;
// returns element count in the resulting 
// array after arguments are pushed to
// beginning of the given array
var_dumparray_unshift($temp_array10) );
echo 
'<br><br>';

// dump the resulting array
var_dump($temp_array);
echo 
'<br><br>';

// Calling array_unshift() with optional arguments
$temp_array $array;
// returns element count in the resulting 
// array after arguments are pushed to
// beginning of the given array
var_dumparray_unshift($temp_array222"hello"12.33) );
echo 
'<br><br>';

// dump the resulting array
var_dump($temp_array);

?>

  8 EXERCISE   

<?php

echo 'The given ARRAYS:<br>';
$array = [1,2,3];
var_dump($array);
echo 
'<br><br>';
$values = [];
var_dump($values);
echo 
'<br><br><br>';

echo 
'The final ARRAYS:<br>';
var_dumparray_unshift($array) );
echo 
'<br><br>';
var_dumparray_unshift($array, ...$values) );
echo 
'<br><br>';
var_dump$array );

?>

  9 EXERCISE   

<?php

/*
* Testing the behavior of array_unshift(] 
* by passing different types of arrays
* to $array argument to which the $var arguments
* will be prepended
*/

echo "Testing array_unshift(]:<br>different arrays for \$array argument:<br>";

// initialize $var argument
$var 10;

// different arrays to be passed to $array argument
$arrays = [
[
12], 
// array with default keys and numeric values
[1.12.2],
// array with default keys & float values
[ [2], [1]],
// sub arrays
[false,true],
// array with default keys and boolean values
[],
// empty array
[NULL],
// array with NULL
["a","aaaa","b","bbbb","c","ccccc"],

// associative arrays
[=> "one"=> "two"=> "three"],
// explicit numeric keys, string values
["one" => 1"two" => 2"three" => ],
// string keys & numeric values
=> 10=> 20=> 40=> 30],
// explicit numeric keys and numeric values
"one" => "ten""two" => "twenty""three" => "thirty"],
// string key/value
["one" => 1=> "two"=> "four"],
//mixed

// associative array, 
// containing null/empty/boolean values as key/value
[NULL => "NULL"null => "null""NULL" => NULL"null" => null],
[
true => "true"false => "false""false" => false"true" => true],
[
"" => "emptyd"'' => 'emptys'"emptyd" => ""'emptys' => ''],
[
=> ''=> ""=> NULL=> null=> false=> true],
[
'' => 1"" => 2NULL => 3null => 4false => 5true => 6],

// array with repetitive keys
["One" => 1"two" => 2"One" => 10"two" => 20"three" => 3]
];

// loop through the various elements
// of $arrays to test array_unshift(]

$iterator 1;
foreach(
$arrays as $array) {
echo 
"<br><br>Iteration $iterator<br>";

/* with default argument */
// returns element count in the resulting
// array after arguments are pushed to
// beginning of the given array
$temp_array $array;
var_dumparray_unshift($temp_array$var) );

// dump the resulting array
var_dump($temp_array);

/* with optional arguments */
// returns element count in the 
// resulting array after arguments are pushed to
// beginning of the given array
$temp_array $array;
var_dumparray_unshift($temp_array$var"hello"'world') );

// dump the resulting array
var_dump($temp_array);
$iterator++;
}

?>

  10 EXERCISE   

<?php

/*
* Testing the functionality of array_unshift()
* by giving two-dimensional
* arrays and also sub-arrays within the 
* two-dimensional array for $array argument.
* The $var argument passed is a fixed value
*/

echo "Testing array_unshift():<br>two dimensional arrays for \$array argument:<br><br>";

// initializing $var argument
$var 10;

// two-dimensional array to be passed to $array argument
$two_dimensional_array = array(

// associative array
array('color' => 'red''item' => 'pen''place' => 'LA'),

// numeric array
array(12345),

// combination of numeric and associative arrays
['a' => 'green''red''brown'3388'orange''item' => 'ball']
);

/* Passing the entire $two_dimensional_array to $array */

/* With default argument */
// returns element count in the resulting
// array after arguments are pushed to
// beginning of the given array
$temp_array $two_dimensional_array;
var_dumparray_unshift($temp_array$var) );
// whole 2-d array
echo '<br><br>';

// dumps the resulting array
var_dump($temp_array);
echo 
'<br><br>';

/* With optional arguments */
// returns element count in the resulting 
// array after arguments are pushed to
// beginning of the given array
$temp_array $two_dimensional_array;
var_dumparray_unshift($temp_array$var"hello"'world') );
// whole 2-d array
echo '<br><br>';

// dumps the resulting array
var_dump($temp_array);
echo 
'<br><br>';

/* Passing the sub-array within the 
$two_dimensional_array to $array argument */

/* With default argument */
// returns element count in the resulting 
// array after arguments are pushed to
// beginning of the given array
$temp_array $two_dimensional_array[0];
var_dumparray_unshift($temp_array$var) );
// sub array
echo '<br><br>';

// dumps the resulting array
var_dump($temp_array);
echo 
'<br><br>';

/* With optional arguments */
// returns element count in the resulting 
// array after arguments are pushed to
// beginning of the given array
$temp_array $two_dimensional_array[0];
var_dumparray_unshift($temp_array$var"hello"'world') );
// sub array
echo '<br><br>';

// dumps the resulting array
var_dump($temp_array);

?>

  11 EXERCISE   

<?php

/*
* Testing the functionality of array_unshift() 
* by passing different
* double quoted strings for $var argument 
* that is prepended to the array
* passed through $array argument
*/

echo "Testing array_unshift():<br>double quoted strings for \$var argument:<br>";

// array to be passed to $array argument
$array = array('f' => "first""s" => 'second'12.222);

// different variations of double 
// quoted strings to be passed to $var argument
$vars = array (
"\$ -> This represents the dollar sign. hello dollar!!!",
"\t\r\v The quick brown fo\fx jumped over the lazy dog",
"This is a text with special chars: \!\@\#\$\%\^\&\*\(\)\\",
"hello world\\t",
"This is \ta text in bold letters\r\s\malong with slashes\n : HELLO WORLD\t"
);

// loop through the various elements 
// of $arrays to test array_unshift()
$iterator 1;
foreach(
$vars as $var) {
echo 
"<br><br>Iteration $iterator<br>";
$temp_array $array;
// assign $array to another temporary $temp_array

/* with default argument */
// returns element count in the resulting 
// array after arguments are pushed to
// beginning of the given array
var_dumparray_unshift($temp_array$var) );

// dump the resulting array
var_dump($temp_array);

/* with optional arguments */
// returns element count in the resulting 
// array after arguments are pushed to
// beginning of the given array
$temp_array $array;
var_dumparray_unshift($temp_array$var"hello"'world') );

// dump the resulting array
var_dump($temp_array);
$iterator++;
}

?>

  12 EXERCISE   

<?php

/*
* Testing the functionality of array_unshift() 
* by passing different
* single quoted strings for $var argument 
* that is prepended to the array
* passed through $array argument
*/

echo "Testing array_unshift():<br>single quoted strings for \$var argument: <br>";

// array to be passed to $array argument
$array = array('f' => "first""s" => 'second'12.222);

// different variations of single quoted strings
// to be passed to $var argument
$vars = array (
'\$ -> This represents the dollar sign. hello dollar!!!',
'\t\r\v The quick brown fo\fx jumped over the lazy dog',
'This is a text with special chars: \!\@\#\$\%\^\&\*\(\)\\',
'hello world\\t',
'This is \ta text in bold letters
\r\s\malong with slashes\n : HELLO WORLD\t'
);

// loop through the various elements of 
// $arrays to test array_unshift()
$iterator 1;
foreach(
$vars as $var) {
echo 
"<br><br>Iteration $iterator<br>";
$temp_array $array;
// assign $array to another temporary $temp_array

/* with default argument */
// returns element count in the resulting 
// array after arguments are pushed to
// beginning of the given array
var_dumparray_unshift($temp_array$var) );

// dump the resulting array
var_dump($temp_array);

/* with optional arguments */
// returns element count in the resulting
// array after arguments are pushed to
// beginning of the given array
$temp_array $array;
var_dumparray_unshift($temp_array$var"hello"'world') );

// dump the resulting array
var_dump($temp_array);
$iterator++;
}

?>

  13 EXERCISE   

<?php

/*
* Testing the functionality of array_unshift() 
* by passing different
* heredoc strings for $var argument 
* that is prepended to the array
* passed through $array argument
*/

echo "Testing array_unshift():<br>heredoc strings for \$var argument:<br>";

// heredoc with empty value
$empty_string = <<<EOT
EOT;

// heredoc with blank line
$blank_line = <<<EOT


EOT;

// heredoc with multiline string
$multiline_string = <<<EOT
hello world
The big brown fox jumped over;
the lazy dog
This is a double quoted string
EOT;

// heredoc with different whitespaces
$diff_whitespaces = <<<EOT
hello\r world\t
1111\t\t != 2222\v\v
heredoc\ndouble quoted string. with\vdifferent\fwhite\vspaces
EOT;

// heredoc with numeric values
$numeric_string = <<<EOT
11 < 12. 123 >22
2222 != 1111.\t 0000 = 0000\n
EOT;

// heredoc with quote chars & slash
$quote_char_string = <<<EOT
This's a string with quotes:
"strings in double quote";
'strings in single quote';
this\line is single quoted /with\slashes
EOT;

// array to be passed to $array argument
$array = array('f' => "first""s" => 'second'12.222);

// different heredoc strings 
// to be passed to $var argument
$vars = array(
$empty_string,
$blank_line,
$multiline_string,
$diff_whitespaces,
$numeric_string,
$quote_char_string
);

// loop through the various elements of 
// $arrays to test array_unshift()
$iterator 1;
foreach(
$vars as $var) {
echo 
"<br><br>Iteration $iterator<br>";
$temp_array $array;
// assign $array to another temporary $temp_array

/* with default argument */
// returns element count in the 
// resulting array after arguments are pushed to
// beginning of the given array
var_dumparray_unshift($temp_array$var) );
echo 
'<br><br>';

// dump the resulting array
var_dump($temp_array);
echo 
'<br><br>';

/* with all possible arguments */
// returns element count in the 
// resulting array after arguments are pushed to
// beginning of the given array
$temp_array $array;
var_dumparray_unshift($temp_array$var"hello"'world') );
echo 
'<br><br>';

// dump the resulting array
var_dump($temp_array);
echo 
'<br><br>';
$iterator++;
}

?>

  14 EXERCISE   

<?php

    $a
=array();
    
$b=1;
    
$c=&$b;
    
array_unshift ($a,$b);
    
$b=2;
    
var_dump ($a);
    
?>