0

I am trying to add elements to an array which is inside another array see below:

$allinfo = array(array('Robin','Red'),array('BlueJay', 'Blue'),array('Parakeet', 'Yellow'));

Then inside a for loop ( the loop executes 3 times ) I would like to add these to the inner array:

'3oz' and '5oz' and '2oz'

So the result for the $allinfo array would look like this:

allinfo = array(array('Robin','Red', '3oz'),array('BlueJay', 'Blue', '5oz'),array('Parakeet', 'Yellow', '2oz'));

I tried array_push() but the weights all show up at the end of the array, not inserted where they need to be.

Thanks,

Jim

0

3 Answers 3

2

You might try

$values = array('3oz', '5oz', '2oz');
for($i=0; $i < count($allinfo); $i++)
{
   $allinfo[$i][] = $values[$i];
}
Sign up to request clarification or add additional context in comments.

1 Comment

Birk. I choose yours because it was already in a for loop, which is where it needs to be. Thanks ~ Jim
1

Might be a slicker way but I'm headed out for lunch:

$allinfo = array(array('Robin','Red'),array('BlueJay', 'Blue'),array('Parakeet', 'Yellow'));
$weights = array('3oz', '5oz', '2oz');

foreach($allinfo as &$array) {
    array_push($array, array_shift($weights));
}
print_r($allinfo);

Comments

0

Try this:

$weights = array('3oz','5oz', '2oz');
$allinfo = array(array('Robin','Red'),array('BlueJay', 'Blue'),array('Parakeet', 'Yellow'));

foreach($allinfo as $key => &$value){
  array_push($value, $weights[$key]);
}

1 Comment

thx, but your script doesn't affect $allinfo ^^ you may pass $value with & like this : foreach($allinfo as $key => &$value){ ...

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.