修复多维数组

时间:2012-07-23 19:13:07

标签: php multidimensional-array echo

我正在尝试创建一个应该打印出来的多维数组(没有格式化):

array(3) {
  [0]=> array(5) {
    [0]=> int(0) 
    [1]=> string(5) "Arena" 
    [2]=> string(18) "2012-05-3017:00:00" 
    [3]=> string(18) "2012-05-3000:00:00" 
    [4]=> string(33) "Masquerade Checkin (Participants)" 
}, 

  [1]=> array(5) {
    [0]=> int(0) 
    [1]=> string(10) "Workshop 1"
    [2]=> string(18) "2012-05-3017:00:00"
    [3]=> string(18) "2012-05-3000:00:00"
    [4]=> string(15) "Death Note (Live)" 
},

  [2]=> array(5) {
    [0]=> int(0) 
    [1]=> string(7) "Video 6" 
    [2]=> string(18) "2012-05-3017:00:00"
    [3]=> string(18) "2012-05-3000:00:00"
    [4]=> string(26) "Takeuchi Fan Panel" 
  }
}

请注意,上面的代码中内部数组()的长度始终为5。

以下是我的代码:

$loopsArray = array();
$data=array();
// graphing info come in here. 
foreach ($events as $key => $event) {

    $el=$event['event_location'] ;
    $eln=$event['event_locationName'];
    $ed=$event['event_date'];
    $es=$event['event_start'];
    $ee=$event['event_end'];
    $en=$event['event_name'];

    array_push($loopsArray,$el,$eln, $ed.$es,$ed.$ee,$en);
    array_push($data,$loopsArray);


}
var_dump($data);

这里打印出来

array(27) {
  [0]=> array(5) {
    [0]=> int(0)
    [1]=> string(5) "Arena"
    [2]=> string(18) "2012-05-3017:00:00"
    [3]=> string(18) "2012-05-3000:00:00"
    [4]=> string(33) "Masquerade Checkin (Participants)" 
  } 

  [1]=> array(10) { 
    [0]=> int(0) 
    [1]=> string(5) "Arena" 
    [2]=> string(18) "2012-05-3017:00:00"
    [3]=> string(18) "2012-05-3000:00:00"
    [4]=> string(33) "Masquerade Checkin (Participants)"
    [5]=> int(13)
    [6]=> string(11) "Autograph 1"
    [7]=> string(18) "2012-06-2419:00:00"
    [8]=> string(18) "2012-06-2422:00:00"
    [9]=> string(17) "Parents and Anime" 
  } 
  //... continues 
}

请注意,内部数组的长度在每次迭代时都会加倍。 array(5)array(10)array(15)array(20)。

在最后一个内部数组中最多可以增加60个元素。每个内部数组中只应包含5个元素。我不明白为什么它会加倍或如何解决它。 你能看看我的循环,让我知道如何解决它?

我必须使用这个多维数组来使这个代码在JpGraph中工作。

1 个答案:

答案 0 :(得分:2)

提示:$loopsArray = array();

中写下foreach

更好的方法

而不是

array_push($loopsArray,$el,$eln, $ed.$es,$ed.$ee,$en);
array_push($data,$loopsArray);

试试这个

$temp = array ($el,$eln, $ed.$es,$ed.$ee,$en);
$data[] = $temp;