如何将值数组转换为另一个索引数组?

时间:2011-02-03 15:30:58

标签: php indexed

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

$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”不是通用和索引,它是每个国家不同的实际值,所以我仍然需要手动列出,不是吗?

有什么想法吗?

由于

3 个答案:

答案 0 :(得分:2)

这样就可以了。

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

仅输出带有值的条目。每个ID都以<th> ID格式输出,每个值都显示在<th>标记内。

答案 1 :(得分:0)

这会生成您想要的代码:

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

答案 2 :(得分: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";
    }
}