【问题标题】:PHP foreach loop - need different value from text shownPHP foreach 循环 - 需要与显示的文本不同的值
【发布时间】:2015-08-20 21:00:50
【问题描述】:

我有一个简单的foreach 循环如下:

foreach ($d_38 as $value) {
    echo "
        <option value='".$value."'";
            if ($results["q".$i]==$value) echo 'selected="selected"';     
    echo">".$value."</option>
";
}

我目前将信息存储在一个名为$d_38 的数组中,此信息在foreach 循环期间放置在下拉列表的options 中。

一切正常。但是,我在$d_38_t 中存储了另一种语言,我想在显示选项文本时显示它,在上面的代码中,这是 third $value 变量。所以基本上,用户会看到一种语言的选项,但在这种情况下,数据始终存储在 English 中。

我不知道如何将这两个数组放在一起,以便我可以在 foreach 循环中使用它们 - 任何人都可以提供任何指导吗?

【问题讨论】:

  • 我觉得这是缺少php,不是吗? -- 而且,FWIW,这根本不是一个 jQuery 问题。 编辑好多了。
  • 我感到很尴尬...今天一直在使用 jQuery...因此它在我的脑海中...谢谢布拉德!
  • 如果使用相同的排序方式,使用常规 for 循环遍历一个数组并从两个数组内部访问数据可能会更容易。
  • $d_38$d_38_t 有相同的键吗?
  • 是的,同样的键豹。

标签: php arrays loops foreach


【解决方案1】:

假设键是数字并且在$d_38$d_38_t之间对齐,您可以使用for循环:

for ($i = 0; $i < count($d_38); $i++)
{
    // ...snip...
    echo ">" . $d_38_t[$i] . "</option>";
}

打算保留它,但请注意:这只适用于数字键。 @panther 有 正确 答案。 ;-)

【讨论】:

    【解决方案2】:

    key添加到foreach中,作为$d_38_t的key。

    foreach ($d_38 as $key => $value) {
        echo "<option value='" . $value . "'";
            if ($results["q".$i] == $value) echo 'selected="selected"';    
        echo ">" . $d_38_t[$key] . "</option>";
    }
    

    【讨论】:

    • 坚持使用 foreach 可能更好。键可能不是数字,foreach 会保留这种关系。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-08
    • 1970-01-01
    • 1970-01-01
    • 2014-01-02
    • 1970-01-01
    相关资源
    最近更新 更多