在循环中创建多维数组
Posted
技术标签:
【中文标题】在循环中创建多维数组【英文标题】:Create a multidimensional array in a loop 【发布时间】:2011-05-28 16:24:28 【问题描述】:我正在尝试在循环中创建这样的数组:
$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】:使用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);
【讨论】:
【参考方案2】:每次迭代都会覆盖 $dataPoints 变量,但应该向数组添加新元素...
$dataPoints[] = array("x"=>$resp['friends_count'],"y"=>$resp ['statuses_count']);
【讨论】:
【参考方案3】:这是因为您在每个循环中将 $dataPoints
重新分配为一个新数组。
改成:
$dataPoints[] = array("x"=>$resp['friends_count'],"y"=>$resp ['statuses_count']);
这将在$dataPoints
的末尾追加一个新数组
【讨论】:
以上是关于在循环中创建多维数组的主要内容,如果未能解决你的问题,请参考以下文章