Create a multidimensional array in a loop

61,298

Solution 1

This is because you're re-assigning $dataPoints as a new array on each loop.

Change it to:

$dataPoints[] = array("x"=>$resp['friends_count'],"y"=>$resp ['statuses_count']);

This will append a new array to the end of $dataPoints

Solution 2

use array_merge($array1,$array2) make it simple use two array one for use in iteration and another for storing the final result. checkout the code.

$dataPoints = array();  
$dataPoint = array();  

$brands = array(
    "COCACOLA","DellChannel","ebayfans","google","microsoft","nikeplus","amazon"); 
foreach($brands as $value){
    $resp = GetTwitter($value);
    $dataPoint = array("x"=>$resp['friends_count'],"y"=>$resp ['statuses_count']);
    $dataPoints = array_merge($dataPoints,$dataPoint);
}
Share:
61,298
Admin
Author by

Admin

Updated on July 09, 2022

Comments

  • Admin
    Admin almost 2 years

    I am trying to create an array like this in a loop:

    $dataPoints = array(
        array('x' => 4321, 'y' => 2364),
        array('x' => 3452, 'y' => 4566),
        array('x' => 1245, 'y' => 3452),
        array('x' => 700, 'y' => 900), 
        array('x' => 900, 'y' => 700));
    

    with this code

    $dataPoints = array();    
    $brands = array("COCACOLA","DellChannel","ebayfans","google",
        "microsoft","nikeplus","amazon"); 
    foreach ($brands as $value) {
        $resp = GetTwitter($value);
        $dataPoints = array(
            "x"=>$resp['friends_count'],
            "y"=>$resp['statuses_count']);
    }
    

    but when loop completes my array looks like this:

    Array ( [x] => 24 [y] => 819 )