【问题标题】:Looping through specific array elements循环遍历特定的数组元素
【发布时间】:2012-10-30 11:16:01
【问题描述】:

我有一个表格,每行包含 5 列,其中可能包含也可能不包含图像文件名。假设我已检索到该行并将其放入 assoc 数组中。我想循环并将这些图像文件名(可能会或可能不会全部填充)回显到 html 标记中,但前提是该列中包含图像文件名。还有比这更好的方法吗?

for ($i = 1; $i < 6; $i++){
if($item_array['image_' . {$i}]{
echo "<li><img src=\"images/work-items/$item_array['image_' . {$i} . '.jpg'\"/></li>"
}  

【问题讨论】:

  • 您的 if 括号未闭合。也没有分号。猜猜这是伪代码,所以我的观点没有实际意义。
  • 试试if( ! empty($item_array['image_' . {$i}])) {
  • @Asad: 或 for 括号未闭合。 :)
  • 你的解决方案没问题(除了细节),你想要什么更好?
  • 让它变得简单。如果列数不太可能发生变化,并且如果您没有在代码中编写 43 次,则对其进行硬编码,不要 pb。

标签: php


【解决方案1】:

你的语法到处都是:

for ($i = 1; $i < 6; $i++){
    if(isset($item_array['image_' . $i])){
        echo '<li><img src="images/work-items/'. $item_array['image_' . $i] . '.jpg"/></li>';
    }
}

【讨论】:

  • “isset”有什么不同吗?我认为填充的数组元素无论如何都等于 TRUE?
  • 如果一个特定的数组索引不存在而你试图输出它,PHP 会发出警告通知。
  • 我猜它一直存在。无论如何,如果您想检查这种情况,最好使用!empty()
  • 但我不会尝试输出空数组索引,因为条件是只有在 TRUE / 填充时才会回显...?
  • 如果你使用 if($item_array['image_' . $i]),如果 "'image_' . $i" 不作为数组索引存在,它会抛出一个警告。
猜你喜欢
  • 2015-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-11
相关资源
最近更新 更多