在php中编写以下代码的最有效方法是什么:
<?php
if($result === 1) {
echo "<img src=\"1.png\" alt=\"1\" />";
} else if ($result === 2) {
echo "<img src=\"1.png\" alt=\"1\" /><img src=\"2.png\" alt=\"2\" />";
} else if ($result === 3) {
echo "<img src=\"1.png\" alt=\"1\" /><img src=\"2.png\" alt=\"2\" /><img src=\"3.png\" alt=\"3\" />";
} else if ($result === 4) {
echo "<img src=\"1.png\" alt=\"1\" /><img src=\"2.png\" alt=\"2\" /><img src=\"3.png\" alt=\"3\" /><img src=\"4.png\" alt=\"4\" />";
}
?>
可以使用循环来完成所有图像以正确的顺序显示吗?谢谢。
答案 0 :(得分:4)
$template = '<img src="%d.png" alt="%d" />';
$result = 3;
$html = implode('', array_map(function($d) use($template) {
return sprintf($template, $d, $d);
}, range(1, $result)));
var_dump($html);
答案 1 :(得分:3)
像
这样的东西$str = '';
for ($i = 1; $i <= $result; $i++) {
$str.= "<img src=\"{$i}.png\" alt=\"{$i}\" />";
}
echo $str; // if you want to print the resulting string.
更新:为了在技术上准确,您应该将$result = min($result, 4);
放在开头,以与您的示例完全匹配。不过,我不确定你的例子有多精确。
答案 2 :(得分:2)
创建一个开关结构:http://php.net/manual/en/control-structures.switch.php
switch ($result) {
case 1:
echo "...";
break;
case 2:
echo "...";
break;
等
答案 3 :(得分:2)
使用if else
继续连接(添加)html字符串,而不是重复自己。
答案 4 :(得分:2)
我认为效率最高的是:
echo substr("<img src=\"1.png\" alt=\"1\" /><img src=\"2.png\" alt=\"2\" /><img src=\"3.png\" alt=\"3\" /><img src=\"4.png\" alt=\"4\" />", 0, 27 * $result);