2010-12-21 9 views
11

próbuję utworzyć tablicę tak w pętli:Tworzenie wielowymiarową tablicę w pętli

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

z tym kodem

$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']); 
} 

ale gdy pętla kończy moja tablica wygląda następująco:

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

Odpowiedz

23

to dlatego, że jesteś ponownie przypisując $dataPoints jako nową tablicę na każdej pętli.

go zmienić na:

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

To doda nową tablicę do końca $dataPoints

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

każdej iteracji jesteś nadpisując $ zmienna punktów danych, ale należy dodać nowe elementy do array ...

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

2

użyj array_merge($array1,$array2) to proste użycie dwóch tablic jeden do użycia w iteracji, a drugiego do przechowywania końcowego wyniku. sprawdź kod.

$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); 
}