2012-09-15 73 views
2

我有一個酒店數據庫,由於房間類型有多個利率。我想相應地將它動態地列入數組(每個房間類型)。我的數據結構是:PHP列表多個值到陣列

  • 酒店A:1200-1500-1300-1700 //房間類型1 = 1200usd /夜,房間類型2 = 1500usd /天...
  • 酒店B:1500至1200年-1300
  • 酒店C:800-850

而且我想它列出到每個房間的類型。所以我寫了:

while($rec = mysql_fetch_array($result_rate)) { 
    $_roomId = $rec['rid']; 
    $_roomRate = $rec['rate']; 

    list($ratez[]) = explode("-", $_rate); //because the room type is varied by hotel so I make it in array 
} 

所以我希望得到的結果應該像

echo "Room ID $_roomId=$ratez[$_roomId] USD "; 

出現,但結果並不如我所料。它持續顯示錯誤Fatal error: Unsupported operand types.

+0

'list'不能像那樣工作。此外,這個代碼有6個不同的變量,所有這些都使用*只有一次* ??? – Jon

回答

1

使用此:

$ratez[] = explode('-', $_rate); 

或者這節省率每間客房:

$ratez[$_roomId] = explode('-', $_rate); 
+0

這就是我正在談論的@ Night2。但是,仍然有一個錯誤:致命錯誤:不支持的操作數類型。 – Wilf

+0

將你的回聲改爲: 'echo'Room ID'。$ _ roomId。'='。$ ratez [$ _ roomId] [0]。' USD';' Inplace of [0]你可以循環數組並使用正確的索引。 – Night2

+0

我所做的是: – Wilf

0

我所做的只是爲:

$_rCostz=explode("-",$rec['cost']); 

和回聲貨幣格式爲:

echo number_format($_rCostz[$room_id-1]) 

//因爲房間ID從1開始,但陣列begins`爲「0」,所以-1

非常感謝你,夜間2等。問題解決了。