可视化阵列数据


Visualizing Array Data

我在可视化大于一维的数组时遇到问题。我对数据库表进行了查询,并将数据存储在一个数组中,然后使用mysqli_fetch_array()创建另一个数组。现在这个数组中有表名和表数据,但我很难弄清楚如何A)只访问数据,B)可视化这里实际发生的事情。

这是print_r($keystore)的输出;

Array ( [0] => Array ( [0] => 4 [key_projects] => 4 ) [1] => Array ( [0] => 26 [key_projects] => 26 ) [2] => Array ( [0] => 25 [key_projects] => 25 ) [3] => Array ( [0] => 52 [key_projects] => 52 ) [4] => Array ( [0] => 53 [key_projects] => 53 ) ) 

这里到底发生了什么?

有时在开发/调试具有数组的代码时,在print_r()命令前后插入HTML <pre>标记会很有帮助:

echo "<pre>";
print_r($keystore);
echo "</pre>";

这将强制输出的格式类似于John Kugelman的答案(受CSS规则约束)。根据经验,我发现当查看纯文本(即没有HTML)

时,Array()的每次迭代都会缩进
Array
(
    [0] => Array ( [0] => 4  [key_projects] => 4  )
    [1] => Array ( [0] => 26 [key_projects] => 26 )
    [2] => Array ( [0] => 25 [key_projects] => 25 )
    [3] => Array ( [0] => 52 [key_projects] => 52 )
    [4] => Array ( [0] => 53 [key_projects] => 53 )
) 

我添加了一些空白以使嵌套数组的结构更加清晰。除了添加空格和换行符之外,我没有做任何更改。

外部数组包含从[0][4]的五个条目。这些条目中的每一个表示SQL结果集中的一行。

for ($keystore as $row) {
    print_r($row[0]);
    print_r($row['key_projects']);
}

您会注意到每个$row中的两个条目是多余的。它们都具有相同的值(例如,最终条目为53)。实际情况是,返回的数据同时按列编号(0)和列名(key_projects)进行索引。您可以使用您选择的值、编号或名称访问这些值:$row[0]$row['key_projects']