2013-02-06 37 views
-2

我有一個數組不同的數字:爆在PHP

$array = [1,2,3,4]; 

我想有一些代碼,將提取這些值和前面加上「廣告」到他們,而爆成HTML屬性:

<div class="ad1 ad2 ad3"> 

我怎麼能這樣做?

+0

+1不知道爲什麼脂肪酶是downvoting這 – Simon

+0

@西蒙簡單地說,因爲drtanz沒有發佈他們有什麼,也沒有嘗試過。 –

+0

還是不值得一downvote,只是要求它像hakre沒... http://stackoverflow.com/privileges/vote-down – Simon

回答

2

循環在你的陣列,並且做任何你必須:

foreach ($array as $item) { 
    ... 
} 

在您的爲例:

$className = ""; 
foreach ($array as $item) { 
    $className .= "ad".$item." "; 
} 

echo '<div class="'.$className.'">'; 
+0

@Dukeling我不想做所有的工作,但沒問題。編輯。 – Tchoupi

+0

我所有的只是指出有人在正確的方向,而不是做他們的工作對他們來說,但在這種特殊情況下,我覺得您的預編輯答案是有點太模糊是有幫助的。 – Dukeling

-1

試試這個:

echo implode(' ad', $array); 
+1

差不多,但它不會在第一個數組項之前放入第一個「ad」。 –

+0

是的,這是我曾嘗試過。 – urok93

4

結合implode()array_map()改變在爆炸之前的值。

事情是這樣的:

$outputString = implode(' ',array_map(function($val) {return "ad{$val}";}, $inputArray)) 
+0

哈,正當我回答同樣的問題時。 +1給你。 –

+0

這是最乾淨的方法。 –

+0

這不是最乾淨的,這是矯枉過正的 - 所有'array_map'正在做內部循環來生成另一個數組。 Mathieu Imbert的回答是相同的,並且使用明確的循環執行相同的事情會更有效率,更不用說所有主機都支持具有匿名函數的PHP版本。只是因爲你可以想出一個單行,並不意味着你*應該*。 – nickb

2

您可以在它環路馬修建議,或做一個破滅聲明:

$array = array(1,2,3,4); 
if (sizeof($array)>0) { 
    $class = 'ad'.implode(' ad',$array); 
} 
echo $class; // ad1 ad2 ad3 ad4