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.

3
  • 3
    You can set the nested array by key: $years[2016] = ['value 1', 'value 2', 'value 3']; Commented Jul 19, 2017 at 10:13
  • 2
    no need to use array_push for this, simply write $years["2016"] = $array; Commented Jul 19, 2017 at 10:14
  • 1
    Read about PHP arrays. The answer to your question is in the section "Accessing array elements with square bracket syntax". Commented Jul 19, 2017 at 10:15

3 Answers 3

3

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

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

Comments

0

Without push :

<?php 

$years = [];

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

var_dump($years);
?>

Or:

$years['someKey'] = [value1, value2 ....]

Comments

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") );

1 Comment

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."

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.