0

这是我被指示分开的另一个问题的后续行动。我有不同的列集和它们的值,有些有值,有些没有。例如:

$vCountries ['country1'] = "Value of country1";
$vCountries ['country2'] = "Value of country2";
$vCountries ['country3'] = "";
$vCountries ['country4'] = "Value of country4";
$vCountries ['country5'] = "";

...through to

$vCountries ['country50'] = "Value of country50";

我想生成以下代码示例(仅当它包含一个值时):

<th id="country1">Value of country1</th>
<th id="country2">Value of country2</th>
<th id="country4">Value of country4</th>

...

由于所有国家/地区 ID 通常仅使用一个索引来区分它们,因此我希望动态生成这些标题。

有人建议了以下代码:

for ($i = 1; $i <= 50; ++$i) {
$vCountries['country' . $i] = "Value of country " . $i;}

但首先,我不明白它是如何工作的以及如何将其解析为顶部的代码,因为目前它只打印数组数组等,并且“国家/地区的值 .$i”不是通用的和索引的,这是每个国家/地区的实际值不同,所以我仍然需要手动列出它,不是吗?

有任何想法吗?

谢谢

4

3 回答 3

2

这会做到的。

foreach($vCountries as $id => $value)
{
    if($value)
    {
        echo "<th id=\"$id\">$value</th>";
    }
}

这仅输出具有值的条目。每个 id 都作为 id 输出<th>,每个值都显示在<th>标签内。

于 2011-02-03T15:35:12.667 回答
0

这会生成您想要的代码:

foreach ($vCountries as $key => $value)
{
    if (strlen($value) > 0)
        echo "<th id=\"$key\">$value</th>";
}
于 2011-02-03T15:35:48.953 回答
0

如果您的目标是从已经定义的数组中生成上述 HTML 代码,那么这可能是您的解决方案:

// Loop the array
foreach ($vCountries as $key => $value) {
    // If value is not empty
    if (!empty($value)) {
        // display the line
        echo '<th id="'.$key.'">'.$value.'</th>'."\n";
    }
}
于 2011-02-03T15:36:22.973 回答