3

I need to add one array inside of another using array_push or something similar.

What I would like to achieve will look like this:

$years = array(
    "2017" => array("Value01", "Value02"),
    "2016" => array("Value03")
);

What would be the best way to create an array within another? I have tried the following:

array_push($years, "2016" => array());

This just gives a

500 error.

And:

array_push($years, "2016");

This does add a new array within $yearshowever it is called "2018" and the "2016" value is place inside that 2018 array. I have manually created the 2017 array already, so I assume it is just incrementing on that number for some reason.

Alive to die - Anant
  • 70,531
  • 10
  • 51
  • 98
Edward1442
  • 143
  • 2
  • 2
  • 12
  • 3
    You can set the nested array by key: `$years[2016] = ['value 1', 'value 2', 'value 3'];` – Lars Beck Jul 19 '17 at 10:13
  • 2
    no need to use `array_push` for this, simply write `$years["2016"] = $array;` – RAUSHAN KUMAR Jul 19 '17 at 10:14
  • 1
    Read about [PHP arrays](http://php.net/manual/en/language.types.array.php). The answer to your question is in the section ["Accessing array elements with square bracket syntax"](http://php.net/manual/en/language.types.array.php#language.types.array.syntax.accessing). – axiac Jul 19 '17 at 10:15

3 Answers3

4

Correct way to do with array_push():-

array_push($years, array("2016" => array()));

But what you want, for that do:-

$years["2016"]= array();

Output:- https://eval.in/834452

Alive to die - Anant
  • 70,531
  • 10
  • 51
  • 98
0

Without push :

<?php 

$years = [];

$years[][] = 'value1';
$years[][] = 'value2';

var_dump($years);
?>

Or:

$years['someKey'] = [value1, value2 ....]
MorganFreeFarm
  • 3,811
  • 8
  • 23
  • 46
0

in this case you dont need to use array_push there are many ways of doing it, for instance :

$years["whatever the key"]= array("whatever the value");

the result will be like :

$years = array(
"2017" => array("Value01", "Value02"),
"whatever the key" => array("whatever the value") );
Kareem Essawy
  • 565
  • 1
  • 4
  • 14
  • Php documentation says: "Note: If you use array_push() to add one element to the array, it's better to use $array[] = because in that way there is no overhead of calling a function." – NIDIA RAMIREZ Jun 26 '19 at 17:15