如何使用“ for”循环PHP在PHP中创建多个变量,

时间:2018-11-11 05:59:40

标签: php

我有5个以上的图片链接,所以我想这样, $ p_image1,$ p_image2,$ p_image3,$ p_image4,$ p_image5

但是我不明白为什么我的鳕鱼不起作用...

这是我获取数组数据的代码:

$id = mysqli_real_escape_string($koneksi,$_GET['i']);
    $query = mysqli_query($koneksi,"SELECT * FROM `tb_produk` WHERE `p_id` = '$id'");
$get = mysqli_fetch_array($query);

这是我的循环代码:

if ($j_image > 1) {
   for ($i = 1; $i <= $j_image; $i++) {
       $p_image[] = $get['p_image'.$i];
   if ($i > 4) {
      break;
   }
?>
   <li data-uk-slideshow-item="<?php echo $i ?>">
       <img src="<?php echo $get['p_image'.$i]; ?>">
   </li>
<?php
    }
}
?>

为什么这不起作用,谢谢您之前的帮助:)

2 个答案:

答案 0 :(得分:0)

我认为创建动态命名变量只是使事情变得更困难的一种方法。
相反,我认为解决问题是解决方案。

动态变量比数组更难使用,并且有一天会在代码中产生错误。

这里我在$ get数组上使用了foreach,这意味着它将循环存在的项目,而我们不必计算和猜测事物。
然后我删除了您创建的这个新数组,因为我看不到它的要点,而是直接使用我的foreach变量$ image转到输出部分。
我还把代码保存在PHP中,并回显了html,因为我觉得它更易于阅读,但这纯粹是观点,您可以做任何想做的事。

$i=1;
foreach($get as $image){
   if ($i > 4) {
      break;
   }

   echo "<li data-uk-slideshow-item=" . $i .">\n";
   echo '    <img src="' . $image . '">' . "\n";
   echo "</li>\n";
   $i++;

}

示例输出:

<li data-uk-slideshow-item=1>
    <img src="1">
</li>
<li data-uk-slideshow-item=2>
    <img src="2">
</li>
<li data-uk-slideshow-item=3>
    <img src="3">
</li>
<li data-uk-slideshow-item=4>
    <img src="4">
</li>

不确定您的代码是否应该输出四个或五个项目。
但是我只是保留了if和break,就像在您的代码中一样。

https://3v4l.org/MrAng

答案 1 :(得分:-1)

数组是处理多个相似值的理想方法。您真的不应该考虑为此创建单独的变量。

仍然,为了创建动态变量,您需要使用其他$,并将它们用花括号{..}包裹起来:

for ($i = 1; $i <= $j_image; $i++) {
       // Create string for dynamic variable name and put it inside curly braces
       // use $ in front to define this as a new variable
       ${'p_image'.$i} = $get['p_image'.$i];
   if ($i > 4) {
      break;
   }