Php 来自数组的动态$行输出

Php 来自数组的动态$行输出,php,mysql,Php,Mysql,我试图从数组中获取动态$row值,并将其显示为输出。当值已经存在时,它保持不显示任何内容 这就是我到目前为止的情况,其中: $row[“lg_.”$val.“”应返回: $lg_it “it”是数组中的$val foreach($arrMapCookieToLang as $key => $val) { $shrtKey = $row["lg_".$val.""]; <input type="text" name="lg_$val" value="$shrtKey

我试图从数组中获取动态$row值,并将其显示为输出。当值已经存在时,它保持不显示任何内容

这就是我到目前为止的情况,其中:

$row[“lg_.”$val.“”应返回:

$lg_it
“it”是数组中的$val

foreach($arrMapCookieToLang as $key => $val) {
    $shrtKey = $row["lg_".$val.""];

    <input type="text" name="lg_$val" value="$shrtKey">
}
foreach($arrMapCookieToLang作为$key=>$val){
$shrtKey=$row[“lg_.”$val.“”];
}
有人有想法吗?

相反
Instead, the
<input type="text" name="lg_$val" value="$shrtKey">
也许你应该使用

echo "<input type=\"text\" name=\"lg_" . "$val\" value=\"$shrtKey\">";
echo”“;

您所拥有的应该会导致语法错误。请尝试以下操作:

<?php
foreach($arrMapCookieToLang as $key => $val) {
    $shrtKey = $row['lg_'.$val];
    ?>
    <input type="text" name="lg_<?= $val ?>" value="<?= $shrtKey ?>">
    <?php
}


您没有回显输入字段:

foreach($arrMapCookieToLang as $key => $val) { 
    $shrtKey = $row["lg_".$val.""]; 
    echo '<input type="text" name="lg_' . $val .'" value="' . $shrtKey . '">';
}

如果这些都在PHP标记中,您将希望
echo”“。但是,PHP标记之外的HTML不需要
echo
ed。此解决方案假设启用了PHP短标记。您不能依赖于此,尤其是在共享托管环境中。@Andreas自Php 5.4以来就提供了短回音标记,并且此解决方案与OP的原始代码非常接近。对其进行了一些修改,但这一次首先显示了我的错误。谢谢大家的帮助!感谢@Progrock、Andreas和Mistery在这篇文章中的贡献。你可以用这个来讨论变量。@Progrock谢谢你的澄清。对我来说是新的,短echo标记忽略了ini设置,因为5.4如果将变量连接到输入属性,为什么要转义双引号,而不是对echo表达式使用单qoute?这对于代码可读性来说要好得多(参见上面我的解决方案)是的,同意您的变体更具可读性。但这种变异也是有意义的。
foreach($arrMapCookieToLang as $val) {
    // ...
}