简体   繁体   English

在循环中创建多维数组

[英]Create a multidimensional array in a loop

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 ) 

This is because you're re-assigning $dataPoints as a new array on each loop. 这是因为您在每个循环$dataPoints重新分配为新数组。

Change it to: 将其更改为:

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

This will append a new array to the end of $dataPoints 这将在$dataPoints的末尾附加一个新数组

use array_merge($array1,$array2) make it simple use two array one for use in iteration and another for storing the final result. 使用array_merge($array1,$array2)可以简单地使用两个数组一个用于迭代,另一个用于存储最终结果。 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);
}

每次迭代都要覆盖$ dataPoints变量,但是你应该向数组添加新元素......

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM