难以理解PHP数组结构

时间:2014-04-01 21:18:49

标签: php arrays

我正在寻找操纵从MySQL查询生成的数组。 print_r格式返回以下内容:

  

Array([cols] => Array([0] => Array([label] => time [type] => number)[1] =>数组([label] => quantity [type] => number))[rows] =>数组([0] =>数组([c] =>数组([0] =>数组([v] => 8.8) [1] =>数组([v] => 3)))[1] =>数组([c] =>数组([0] =>数组([v] => 8.2 )[1] =>数组([v] => 4 )))[2] =>数组([c] =>数组([0 ] =>数组([v] => 7.3)[1] =>数组([v] => 1)))[3] =>数组([c] =>数组([0 ] =>数组([v] => 5.7)[1] =>数组([v] => 3)))[4] =>数组([c] =>数组([0 ] =>数组([v] => 4.9)[1] =>数组([v] => 2)))[5] =>数组([c] =>数组([0 ] =>数组([v] => 2.9)[1] =>数组([v] => 1)))[6] =>数组([c] =>数组([0 ] =>数组([v] => 1.6)[1] =>数组([v] => 1)))))

我将此输出放入数组美化器中以便更好地理解结构:http://phillihp.com/toolz/php-array-beautifier/

然而,即使使用这个更漂亮的版本,我也不确定如何访问特定元素。例如,我如何才能返回一对" 8.2",#34; 4"从这个数组上面加粗?任何对这种结构的见解都将不胜感激。

这是生成此数组的代码:

$return_structure = array(
    'cols' => array (
       // array('label' => 'name', 'type' => 'string'),
        array('label' => 'time', 'type' => 'number'),
        array('label' => 'quantity', 'type' => 'number')
    ),
    'rows' => array()
);

while($row = mysql_fetch_assoc($result)) {
        $return_structure['rows'][] = array('c' => array(
        //array('v' => $row['name']),
        array('v' => $row['time']),
        array('v' => $row['quantity']),
            ));

提前感谢您的帮助! -Daniel

1 个答案:

答案 0 :(得分:2)

一个很好的方式来获得一个漂亮的"快速查看是使用html "pre" tag

在您的网络浏览器中查看它
echo "<pre>";
print_r($array);

访问多维关联数组时,您可以:

1)使用循环遍历所有内容,您可能需要嵌套循环来完成此任务。即使使用一堆foreach loops,这也会变得非常混乱和繁琐。

类似的东西:

foreach ($arrayDImension as $subArray) {
    foreach($subArray as $row -> $value) {
      //access the rows & values here
    }
}

OR

2)直接访问它们,假设您知道索引的名称等。您可以像这样访问它们:

print_r($array['rows'][3]['c'][0]['v']); // gives you 8.2

print_r($array['rows'][4]['c'][5]['v']); //gives you 4
相关问题