【问题标题】:How to pas array in loop in php?如何在php中循环传递数组?
【发布时间】:2016-11-28 07:24:54
【问题描述】:

我面临的问题是我想使用数组和循环显示所有图像,它没有显示所有图像,它只显示一个图像。这是我的代码

if($objResult['Image_Type'] == '01') {
    $img11 = array($objResult['Image_Name']);
    for ($i=0; $i < count($img11[$i]); $i++) {
        $im_mouths = array($img11[$i]);
    }
}

这里是在数据库中提取所有图像

使用此代码输出仅显示一张图片

<?  echo    $im_mouths[0].'11111'.'<br>';?>
<?  echo    $im_mouths[1].'222222'.'<br>';?>
<?  echo    $im_mouths[2].'333333'.'<br>';?>

我不确定我做的是否正确,请帮我解决这个问题。 谢谢:)

【问题讨论】:

  • 请在您运行查询和检索数据的位置添加代码部分

标签: php mysql arrays for-loop


【解决方案1】:

它只显示一张图像,因为您每次循环时都在重写$im_mouths。您应该更改循环以执行以下操作:

$im_mouths = array();
if($objResult['Image_Type'] == '01') {
    $img11 = array($objResult['Image_Name']);
    for ($i=0; $i < count($img11[$i]); $i++) {
        $im_mouths[] = array($img11[$i]);
    }
}

我们将$im_mouths初始化为一个数组,然后将每个元素作为一个元素添加到数组中:$im_mouths[] = ...

【讨论】:

  • 先生,我明白了一点,请指导我完成,如何将每个元素作为元素添加到数组中:'$im_mouths[]=...'。
  • @ThanHtutOo 将其更改为 $im_mouths[] = $img11[$i]; 而不是 $im_mouths[] = array(...)
  • @GeorgeGarchagudashvili 需要详细说明吗?我已经回答了问题的范围。
  • array($objResult['Image_Name']) 将始终是 1 元素数组。通过这个 $im_mouths[] = array($img11[$i]);等于 $im_mouths[] = $img11;
  • 我认为他想要这样的东西:$im_mouths[] = $objResult['Image_Name'] - 只添加图像名称作为数组元素而不是数组数组
【解决方案2】:

在您的示例中,变量 $im_mouths 应仅包含最后一张图片(即 20140923jaobangsaen01.png )。因为您使用简单的变量来存储图像,所以当程序流程从 for 循环中出来时,变量可能包含最后一张图像。这样您的示例的输出是正确的。如果要显示每个图像的方式,则应使用数组变量来存储所有图像并显示回所需的位置。重新排列代码,如下所示,

$im_mouths = array();
if($objResult['Image_Type'] == '01') {
    $img11 = array($objResult['Image_Name']);
    for ($i=0; $i < count($img11[$i]); $i++) {
        $im_mouths[] = array($img11[$i]);
    }
}

希望它对您有用。

使用可以使用 foreach 来显示图像,而不是对每个图像使用 echo。

$num = 1111;  //if required
foreach ( $im_mouths as $value ) {
    echo $value.$num;
    $num += 1111;
}

【讨论】:

  • 先生,我应该使用这个' echo $im_mouths[0].'11111'.'
    ';?> echo $im_mouths[1].'222222'.'
    ';?> echo $im_mouths[2].'333333'.'
    ';?>'
  • 我添加了一个用于打印数字的新示例
【解决方案3】:

您需要稍微简化一下代码。 假设您有一个用于从数据库中检索数据的外部循环:

$im_mouths = array();
while ($objResult = $res->fetch()) {
    if($objResult['Image_Type'] == '01') {
        $im_mouths[] = $objResult['Image_Name'];
    }
}

现在您拥有$im_mouths 图像名称元素数组,与数据库中的元素一样多。因此,如您所见,您不需要不必要的内部 for 循环

最后看看你的$im_mouths数组里有什么,你可以print_r它:

print_r($im_mouths);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-13
    • 2022-12-26
    • 1970-01-01
    • 1970-01-01
    • 2018-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多