微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP:如何在echo语句内使用foreach循环?

如何解决PHP:如何在echo语句内使用foreach循环?

| 我试图循环回显一个回声中的一个数字; 而我尝试如下:
     $array = array();
     $result = MysqL_query(\"SHOW TABLES FROM `st_db_1`\");
     while($row = MysqL_fetch_row($result) ){
     $result_tb = MysqL_query(\"SELECT id FROM $row[0] LIMIT 1\");
     $row_tb=MysqL_fetch_array($result_tb);
     $array[] = $row[0];
     $array2[] = $row_tb[0];
     //checking for availbility of result_tb
     /*   if (!$result_tb) {
                  echo \"DB Error,Could not list tablesn\";
                  echo \'MysqL Error: \' . MysqL_error();
                  exit;
                  }  */
     }
     natsort($array);
     natsort($array2);

    foreach ($array as $item[0]  ) {
    echo \"<a href=show_cls_db.PHP?id= foreach ($array2 as $item2[0]){echo \\\"$item2[0]\\\"}>{$item[0]}<br/><a/>\" ;
    }
但是PHP没有考虑回声内部的foreach循环; 请给我一些建议     

解决方法

        正如其他人所提到的,您不能在字符串内进行循环。您正在尝试做的事情可以这样实现:
foreach ($array as $element) {
    echo \"<a href=\'show_cls_db.php?id=\" . implode(\'\',$array2) . \"\'>{$element}</a><br/>\";
}
implode(...)
用一个分隔符连接数组的所有值,分隔符也可以是一个空字符串。 笔记: 我想你要
<a>...</a>
之外
<br />
我不明白为什么要使用ѭ5作为遍历器数组元素的临时存储(因此重命名为
$element
)     ,        只需使用
implode
而不是尝试循环数组,
foreach ($array as $item)
{
    echo implode(\"\",$array2);
}
否则,如果您需要为每个变量执行其他逻辑,则可以执行以下操作:
foreach ($array as $item)
{
    echo \'<a href=\"show_details.php?\';
    foreach($something as $something_else)
    {
        echo $something_else;
    }

    echo \'\">Value</a>\';
}
我们将不得不查看变量的内容以了解您的尝试。 作为一个疯狂的猜测,我认为您的数组外观如下:
array(
     id => value
)
当您尝试在初始
foreach
产生的值内访问
[0]
时,您可能正试图将键和值分开,请尝试如下操作:
foreach($array as $id => $value)
{
     echo $id;    //This should be the index
     echo $value; //This should be the value
}
    ,        
foreach ($array as $item  ) {
    echo \"<a href=\\\"show_cls_db.php?id=\";
    foreach ($array2 as $item2) { echo $item2[0]; }
    echo \"\\\">{$item[0]}<br/><a/>\" ;
}
    ,        没有冒犯,但此代码是...粗略的。将其发布在codereview.stackexchange.com上以获取一些重构的帮助。现在,一个快速提示是使用PDO,至少不要使用您的输入。 无论如何,正如答案所指出的那样,您只需在其中包含\“ foreach \”代码的字符串中回显即可。从字符串中取出。我可能会使用RobertPitt建议的
implode
。考虑通过让mysql进行排序来更有效地对数据库中的数据进行排序和选择。不要使用ѭ16,因为那绝对没有任何意义。明确命名变量。此外,您的href标记格式错误-即使将foreach循环从回声中拉出来,您也可能看不到正确的结果,因为您的浏览器可能会将其全部渲染掉。确保将这些引号放在应有的位置。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。