2013-11-26 146 views
0

我有一個可視化數組大於一維的問題。我對數據庫表進行了查詢並將數據存儲在數組中,然後使用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)) 

這裏究竟發生了什麼?

回答

0
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']

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

這將迫使輸出爲類似於約翰Kugelman的格式:

+0

這就是爲什麼它如此混亂......現在如何擺脫冗餘... – user2967081

+1

這個機會有通過不將'MYSQLI_BOTH'的'mysqli_fetch_array'默認'resulttype'值更改爲'MYSQLI_ASSOC',從而返回數字**和**關聯數組鍵? –

+0

我通過簡單地創建另一個數組並將每個值粘貼在其中來解決重複結果。漂亮的蹩腳的黑客,但它的工作。 – user2967081

0

有時候,開發具有陣列/調試代碼時,前後的print_r()命令後,將HTML <pre>標籤是有幫助回答(受CSS規則約束)。我從經驗中發現,每次迭代Array()都會縮進,查看純文本時(即沒有HTML)