【问题标题】:Accessing variables, named with variables PHP访问变量,以变量 PHP 命名
【发布时间】:2013-12-03 11:11:19
【问题描述】:

我对编程很陌生,我从学校找到了一份工作,根据随机生成的数字制作“预测”天气图。

我每天(第 1 天 -> 第 7 天)已经有 7 个不同的数组以及之后的所有代码来检查所需的内容并创建天气图。

现在我有一个问题,我想在 1 个 for 循环中遍历所有 7 个数组。我问了一个朋友,我认为这是一件非常小的事情丢失/做错了......

因为我之后已经获得了所有代码(目前硬编码了 1 天),如果您能为我的(我猜很糟糕)方式提供解决方案,我会很高兴,而不是完全不同的方式,尽管它很可能更多如此高效。

我试过这样:

for($daynr = 1; $daynr < 8; $daynr++){
    $dayZ = 'day'.$daynr;
    print_r($$dayZ);
    ...

这就像一个魅力,并给出了数组 1-7。但是当我尝试访问 dayZ 的一部分时,我卡住了:

echo $$dayZ[0][0]

给出:

注意:未定义变量:在 C:\xampp\htdocs\index.php 在第 139 行

因为像$temp = explode('/',$$dayZ[$region_nr][3])... 这样的很多东西需要访问 day-array,所以有一个解决方案会很酷。

顺便说一句,echo $day1[0][0] 这样的东西可以正常工作。

非常感谢任何帮助,在此先感谢

最好的问候

迈克尔

【问题讨论】:

    标签: php arrays variables for-loop naming


    【解决方案1】:

    更简洁的解决方案是将日期放在另一个数组中。所以不是$day1$day2 等,你有一个数组 $days 包含你每天的数组。

    $days[0][0][0] // monday
    $days[1][0][0] // tuesday
    // ...
    

    【讨论】:

    • 你能告诉我如何将我的数组放入这个数组吗?我的 array_push 做不到 :(
    【解决方案2】:

    使用

    ${$dayZ}[0][0]
    

    请记住,这种变量格式不会提高可读性或良好的代码。

    【讨论】:

    • 说注意:未定义的变量:第 130 行 C:\xampp\htdocs\index.php 中的 d——不知道这个“d”来自哪里:/
    • ${$dayZ}[0][0] -- 明白了!!!谢谢 :) 你是最棒的! - 我会尽快接受答复
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-19
    相关资源
    最近更新 更多