我有像这样的数组值
Array (
[0] => A1
[1] => A2
)
Array (
[0] => B1
[1] => B2
[2] => B3
)
爆炸
$explodedeductedfinal = explode(",",$CODE);
这是我在td输出数据的PHP代码
foreach($explodedeductedfinal as $is){
$bankname = trim($is);
if (!empty($bankname)) {
echo "<td class='center'>$bankname</td>";
}else{
echo "<td class='center'>'novalue'</td>";
}
}
输出:
|Column A|Column B|Column C|
A1 A2
B1 B2 B3
期望的输出:
|Column A|Column B|Column C|
A1 A2 novalue
B1 B2 B3
我只想在$ bankname为空时输出它将显示无值
答案 0 :(得分:1)
第三个元素不是空的,它不存在,所以foreach
只会循环两个。您可以强制它达到您想要的长度并提供默认值:
$default = array_fill(0, 3, 'novalue');
$explodedeductedfinal = array_replace($default, explode(",", $CODE));
foreach($explodedeductedfinal as $is){
$bankname = trim($is);
echo "<td class='center'>$bankname</td>";
}
答案 1 :(得分:0)
好的foreach将遍历数组的每个元素。
if (!empty($bankname)) {
因为你在foreach中,所以不会是空的。如果总有3列,您可以考虑使用简单的for语句,或者使用javascript来填充表中具有默认值的所有空单元格。为此,看到这个小提琴。我过去不得不使用它。
答案 2 :(得分:0)
计算数组的最大索引并在其上循环而不是foreach。从数据库中,您可以获得最大值。然后使用isset()来验证是否为该索引设置了值。
我编写了这个(快速和脏,没有数据库,没有输出格式化):
<table>
<?php
$arA = array(0 => 'A1', 1 => 'A2');
$arB = array(0 => 'B1', 1 => 'B2', 2 => 'B3');
function output_ar($ar,$maxindex)
{
for ($i = 0; $i <= $maxindex; $i++)
{
if (isset($ar[$i]))
{
echo "<td>" . $ar[$i] . "</td>";
}
else
{
echo "<td>novalue</td>";
}
}
}
$maxindex = max(count($arA),count($arB)) -1;
echo "<tr>\n";
output_ar($arA,$maxindex);
echo "</tr>\n<tr>\n";
output_ar($arB,$maxindex);
echo "</tr>\n";
?>
</table>