Создание многомерного массива в цикле
Я пытаюсь создать такой массив в цикле:
$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));
с этим кодом
$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']);
}
но когда цикл завершается, мой массив выглядит следующим образом:
Array ( [x] => 24 [y] => 819 )
Ответы
Ответ 1
Это связано с тем, что вы повторно назначаете $dataPoints
в качестве нового массива для каждого цикла.
Измените его на:
$dataPoints[] = array("x"=>$resp['friends_count'],"y"=>$resp ['statuses_count']);
Это добавит новый массив в конец $dataPoints
Ответ 2
use array_merge($array1,$array2)
упрощает использование двух массивов для использования на итерации, а другой для хранения конечного результата. проверьте код.
$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);
}
Ответ 3
$dataPoints[] = array("x"=>$resp['friends_count'],"y"=>$resp ['statuses_count']);
Ответ 4
На каждой итерации вы переписываете переменную $dataPoints, но вы должны добавлять новые элементы в массив...
$dataPoints[] = array("x"=>$resp['friends_count'],"y"=>$resp ['statuses_count']);