0

我有具有以下名称的数组:$MyMondayClasses、$MyTuesdayClasses、$MyWednesdayClasses、$MyThursdayClasses、$MyFridayClasses

我有一个星期几的数组: $days = array('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday');

我想循环一周中的几天,然后运行适当的数组,但我不确定如何引用要制作的变量:

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

我曾经将 eval 用于此类事情,但请理解这不是最佳实践。无论如何,上面的代码不起作用。

4

2 回答 2

2

我有具有以下名称的数组:$MyMondayClasses、$MyTuesdayClasses、$MyWednesdayClasses、$MyThursdayClasses、$MyFridayClasses

听起来不是很聪明。

为什么不只拥有一个数组,以“星期一”、“星期二”等作为键 - 然后将每天的数据数组放在该键下……?

于 2013-03-20T16:28:32.667 回答
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
    }
}
于 2013-03-20T16:24:09.573 回答