配置2d php数组

时间:2016-02-03 21:13:27

标签: php arrays

我正在尝试使用从数据库中提取的一些数据来调整代码上的php图表库。我太近了但我觉得我对所有这些数组感到困惑。我会尝试尽可能简单地解释。构建我的库需要读取以创建php图表的数据的适当形式如下:

//With this value my api displays the chart normally
$p->data = array(array(array("2015/10/10",44),array("2015/10/11",56)));

我正在尝试构建上述数组的方式如下

//Fetch results from database and push values into an array
while($row = mysqli_fetch_array($result)){ 
  $values[] = array($row['Date'] => $row['Total']);
}
$p->data = array(array($values));

但不幸的是,图表没有显示我的价值观。如何修复我的代码以实现这种格式:

$p->data = array(array(array("2015/10/10",44),array("2015/10/11",56)));

3 个答案:

答案 0 :(得分:1)

如果数组应与第一个代码示例相同,则不需要=>。所以,您可以执行以下操作:

while($row = mysqli_fetch_array($result)){ 
  $values[] = array($row['Date'], $row['Total']);
}

=>创建一个键值对,第一项作为键,第二项作为值。如果您使用,,则会创建一个包含这些项的平面数组。

答案 1 :(得分:1)

您正在插入$row['Date']作为键,$row['Total']作为值,如果您运行print_r($p->data)会导致此结果:

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [0] => Array
                        (
                            [2015/10/10] => 44
                        )
                    [1] => Array
                        (
                            [2015/10/11] => 56
                        )
                )
        )
)

你真的需要

while($row = mysqli_fetch_array($result)){ 
  $values[] = array($row['Date'], $row['Total']);
}

这样,您将获得此数组:

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [0] => Array
                        (
                            [0] => 2015/10/10
                            [1] => 44
                        )
                    [1] => Array
                        (
                            [0] => 2015/10/11
                            [1] => 56
                        )
                )
        )
)

正是您需要的

答案 2 :(得分:0)

你正在包装一个太多的数组:

$p->data = array(array(array("2015/10/10",44),array("2015/10/11",56)));
            ^-A   ^-B   ^-C0                    ^-C1

然后

  $values[] = array($row['Date'] => $row['Total']);
               ^-C0,C1,C2,etc...
      ^--B
}
$p->data = array(array($values));
                   ^--A
              ^---????