2012-04-26 106 views
0

我正在使用foreach來循環顯示圖像。最多有四張圖片和最少一張圖片。 例如,如果有兩個圖像(=兩個循環),我想告訴foreach他需要再次循環兩次並回顯一些佔位符圖片。PHP foreach循環x次並添加佔位符

繼承人我的foreach:

<?php foreach($users as $k => $v) {?> 
<img src="/images/user_<?php echo $k; ?>.jpg" alt="" title="" /> 
<?php } ?> 

輸出(兩個迴路):

<img src="/images/user_0.jpg" alt="" title="" /> 
<img src="/images/user_1.jpg" alt="" title="" /> 

但新的腳本應該輸出:

<img src="/images/user_0.jpg" alt="" title="" /> 
<img src="/images/user_1.jpg" alt="" title="" /> 
<img src="/images/user_placeholder.jpg" alt="" title="" /> 
<img src="/images/user_placeholder.jpg" alt="" title="" /> 

不要忘記它可能是$用戶可以有x個條目(0-4)

+0

因此,您希望將x個用戶圖像輸出到瀏覽器,並且x個佔位符(到目前爲止都是完全相同的)緊隨其後? – Malovich 2012-04-26 14:58:54

回答

4

使用array_fill來根據需要填充儘可能多的項目(因爲它們全部相同),然後將其打印出來。

<?php foreach($users as $k => $v) {?> 
<img src="/images/user_<?php echo $k; ?>.jpg" alt="" title="" /> 
<?php } ?> 

<?php 
echo implode('', array_fill(0, count($users), 'placeholder image HTML')); 

當然不是這樣的可愛,你也可以使用其他foreach,在每次迭代打印placeholder image HTML中。

更新:原來還有一個更好的方法:

echo str_repeat('placeholder image HTML', count($users)); 

PHP真的有太多許多功能記住。 :)

+0

感謝這個可愛的解決方案:) *接受* ...編輯:都工作。我喜歡單線解決方案,所以我很開心 – ggzone 2012-04-26 15:05:29

0

使用計數器...

<?php 
$counter = 0; 
foreach($users as $k => $v) {?> 
    <img src="/images/user_<?php echo $k; ?>.jpg" alt="" title="" /> 
<?php $counter++; 
} 
while{$counter < 4) 
{?> 
    <img src="/images/user_placeholder.jpg" alt="" title="" /> 
<?php } ?> 
0

這應該工作

$count = 1; 
foreach($users as $k => $v) { 
?> 
    <img src="/images/user_<?php echo $k; ?>.jpg" alt="" title="" /> 
<?php 
    $count++; 
} 

for ($i = $count; $i <= 4; $i++) { 
?> 
    <img src="/images/user_placeholder.jpg" alt="" title="" /> 
<?php 
} 
?> 
0
<?php 
$placeholders = array(); 
foreach($users as $k => $v) {?> 
    <img src="/images/user_<?php echo $k; ?>.jpg" alt="" title="" /> 
    <?php 
    $placeholders[] = '<img src="/images/user_placeholder.jpg" alt="" title="" />'; 
} 
foreach ($placeholders as $placeholder){ 
    echo $placeholder; 
} ?> 

正如你可以看到,有十幾個途徑皮膚這個特別的貓。