这是我的剧本:
$imagesPerLine = array(1=>2, 2=>3); $default = 4;
$lines = array(1, 2, 3);
$html="";
foreach ($lines as $line) {
if (!isset($imagesPerLine[$line])) {
$imagesPerLine[$line] = $default;
}
$html.= "<tr>\n";
for ($i = 1; $i <= $imagesPerLine[$line]; $i++) {
$html.=sprintf("<td>%s</td>\n",any_function());
}
$html.="</tr>\n";
}
echo $html;
此时看起来应该是这样:
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
现在,在每个“td-tag”中,我希望我的函数any_function()
能够证明三个文件中是否存在其中一个。
我做了什么:
function any_function($transactionId)
{
$states = array('schwarz', 'rot', 'blau');
$path = '';
foreach ($states as $state) {
$testPath = sprintf('transactions/Ordner%s/%s.png', $transactionId, $state);
if (file_exists($testPath)) {
$path = $testPath;
echo $path;
break;
}
}
return $path;
}
$transactionIds = range(1,9);
foreach ($transactionIds as $transactionId) :
if (($transactionId % $imagesPerLine) == 1)
$path = any_function($transactionId);
$imageHtml = ('' !== $path)
? '<img src="' . $path . '" />'
: '<img name="nummer.' . $transactionId . '" src="inventory_images/8.jpg" onclick="changecolor(this)" />' ;
echo $imageHtml;
endforeach;
但现在没有意义,所以这就是我问你的原因。
重要提示:$transactionId
每次显示都应为+1。
任何人都可以帮我配置我的脚本吗?
答案 0 :(得分:0)
$html.=sprintf("<td>%s</td>\n",any_function());
表示你获取any_function的返回值并将其插入到字符串中,稍后将回显。
但是
if (file_exists($testPath)) {
$path = $testPath;
echo $path;
break;
}
已经回应了某些东西($ path),这显然会破坏你的输出。删除该回声线。在另一个功能中也一样。