2011-02-03 137 views
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」的價值不是通用的和索引的,它是每個國家不同的實際價值,所以我仍然必須手動列出它,不是嗎?

任何想法?

謝謝

回答

2

這將做到這一點。

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

這隻輸出具有值的條目。每個ID都以<th> id的形式輸出,每個值都顯示在<th>標籤內。

+0

好吧,我刪除了我的答案... – 2011-02-03 15:45:29

+0

@Murilo:下次修復它而不是刪除它。你的回答增加了對話的價值,它只需要一點點調整。 – 2011-02-03 15:47:55

+0

好的,謝謝!我在這裏是新的,所以我正在學習如何使用這個工具。這裏的人非常快,當我開始寫答案時,還沒有答案,所以當你回答時我認爲我的答案是不需要的。 – 2011-02-03 15:54:30

0

這個生成的代碼,你想:

foreach ($vCountries as $key => $value) 
{ 
    if (strlen($value) > 0) 
     echo "<th id=\"$key\">$value</th>"; 
} 
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"; 
    } 
}