2013-02-12 43 views
0

這是一個業餘問題(所以如果我忽略了一些真正明顯的事情,我一直在PHP.net尋找一些線索,但還沒有找到它),我解密這個代碼的人其他人爲一個朋友網站做了一些,只是迷路了。PHP currentarray數量和含義

代碼正在做的是爲數據庫創建一個數組,然後該站點根據時間戳和排序調用信息。由於某種原因,有些東西沒有顯示出來,所以我只是想通過它來讓我的頭:

$TYPES_EXPO = array("Type1","Type2","Type3","Type4","Type5","Type6","Type7"); 

$currentarray = $debe->runSql("SELECT * FROM expositions WHERE from<='$nu' AND to>='$nu' ORDER BY from"); 

if(count($currentarray)>0) 
    echo "<h1>Current Exhibitions</h1>"; 

for($i=0; $i<count($currentarray);$i++) 
{ 
    echo "<b>" . $currentarray[$i][3] . "</b>"; 

所以在最後一行,什麼是[3]引用?更多的是在代碼的其他部分,不同的整數,如[6]和[7]在類似的配置,似乎任意對我來說,似乎無法得到我的手指...

+0

做'的var_dump($ currentarray)',你會看到發生了什麼裏面。看起來像只是一個數組解引用,在結果集中選擇一行數據的第4列(從0開始)。 – 2013-02-12 16:23:55

回答

0

3引用多維數組$currentarray內的第4個元素(0是第一個元素)。

因此,例如,你有一個數組$person

mike 
    male 
    blue 
    75 
    31 
jack 
    male 
    brown 
    80 
    21 

$person[1][3]將指向整數21

我希望這有助於:)

//編輯:只是作爲小費,不要在foreach中使用count()。分配一個變量vefore,這樣當你有一千個數組項時,函數不會被調用一千次。

+0

打敗我吧。注意:你應該將你的sql從'SELECT * FROM'改爲'SELECT column1,column2,column3 FROM',這樣即使數據庫表被改變,第三個元素也是一樣的。 – Chris 2013-02-12 16:26:29

+0

不會[3]訪問第四個元素? – dlp 2013-02-12 16:26:59

+0

正確。 sry我改正了這一點, – 2013-02-12 16:27:58

1

我懷疑電話$debe->runSql正在返回記錄數組。 [3]是回報中的第3列。

可能是您的數據庫表中的第三列。但與SELECT * FROM不保證第三列將是相同的。你會想將它更改爲SELECT first, second, third FROM

再次,這是假設$debe->runSql將返回類似的東西http://php.net/manual/en/function.mysql-fetch-row.php