在循环中创建一个多维数组

15

我正在尝试在循环中创建这样的数组:

$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 ) 
3个回答

30

这是因为在每次循环中,您都将$dataPoints重新赋值为一个新数组。

将其更改为:

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

这将在$dataPoints的末尾附加一个新的数组。


1

使用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);
}

0
每次迭代您都在覆盖$dataPoints变量,但是您应该向数组添加新元素... $dataPoints[] = array("x"=>$resp['friends_count'],"y"=>$resp ['statuses_count']);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接