在foreach循环中调用php变量数组名称

时间:2013-03-20 16:21:39

标签: php arrays variables

我有以下名称的数组:     $ 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来做这类事情,但要明白这不是最好的做法。无论如何,上面的代码不起作用。

2 个答案:

答案 0 :(得分:2)

  

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

听起来不是很聪明。

为什么不只有一个数组,以'星期一','星期二'等作为键 - 然后在该键下每天都有你的数据数组......?

答案 1 :(得分: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
    }
}