2013-03-20 55 views
0

我有以下名稱的數組: $ MyMondayClasses,$ MyTuesdayClasses,$ MyWednesdayClasses,$ MyThursdayClasses,$ MyFridayClasses調用PHP變量數組名

而且我有一個數組一週的日子: $ days = array('星期一','星期二','星期三','星期四','星期五');

我想遍歷星期幾,然後運行相應的陣列,但我不知道如何引用變量進行:

foreach($days as $value){ 
    foreach($My{$value}Classes as $ClassKey => $ClassVar){ 
     some code goes here 
    } 
} 

我曾經使用eval這個類似的事情,但明白這不是最佳實踐。無論如何,上面的代碼不起作用。

+1

爲什麼你只有一堂課,你通過一週的一天?我假設每週的課程日期都是相似的。 – karmafunk 2013-03-20 16:25:39

+1

你有沒有考慮在另一個數組中構建你的'$ MyDAYClasses'數組,從開始就有索引的日子?例如'classes = array('Monday'=> $ MyMondayClasses),...);'這樣當你想查找它們時,你可以很容易地找到它們。 – dnagirl 2013-03-20 16:29:11

回答

0

無厘頭..你應該使用數組,但如果你堅持,你可以嘗試:

foreach ($days as $value) { 
    $name = sprintf("My%sClasses", $value); 
    if (! isset(${$name})) { // the boss asked 
     continue; 
    } 
    foreach (${$name} as $ClassKey => $ClassVar) { 
     // play some ball 
    } 
} 
+0

BRACES!香蕉香蕉 – PeeHaa 2013-03-20 16:27:15

2

我有以下名稱的數組:$ MyMondayClasses,$ MyTuesdayClasses,$ MyWednesdayClasses,$ MyThursdayClasses ,$ MyFridayClasses

聽起來不是很聰明。

爲什麼你不只是有一個數組,以'星期一','星期二'等等作爲關鍵字 - 然後讓你的數據數組在每一天的關鍵... ...?

+0

'聽起來不是很聰明'聽起來很不聰明。我完成了一個語法錯誤:-P(+1) – DaveRandom 2013-03-20 16:34:57