2013-03-20 76 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