2012-07-20 37 views
-2

獲得+1我想將這段代碼:PHP變量,在每一次亮相

$html=<<<EOF 

    <p>{${$var[i]}[name]}</p> 
    <p>{${$var[i+1]}[name]}</p> 
    <p>{${$var[i+2]}[name]}</p> 
    <p>{${$var[i+3]}[name]}</p> 

EOF; 

像這樣的東西:

$html=<<<EOF 

    <p>{${$var[new_i]}[name]}</p> 
    <p>{${$var[new_i]}[name]}</p> 
    <p>{${$var[new_i]}[name]}</p> 
    <p>{${$var[new_i]}[name]}</p> 

EOF; 

和維護第一段代碼的功能。

是否可能?

+1

YNT - 請不要在你的問題中提出解決方案。只是投票,並選擇你認爲是接受的答案。 – Neal 2012-07-20 18:05:38

+0

@Neal OK。我只需等待15分鐘即可接受答案。 – 2012-07-20 18:08:57

+0

但這並不意味着你應該改變你的問題:-P – Neal 2012-07-20 18:10:57

回答

5

後遞增救援!

$html=<<<EOF 

    <p>{${$var[$i++]}[name]}</p> 
    <p>{${$var[$i++]}[name]}</p> 
    <p>{${$var[$i++]}[name]}</p> 
    <p>{${$var[$i++]}[name]}</p> 

EOF; 

但如果你只是打算在此之後有權顯示$html,它可能是更好的事情可做:

<?php for($i = 0; $i < $max_i; ++$i):?> 
<p><?php echo ${$var[$i]}[name] ?></p> 
<?php endfor;?> 
2

你可以只通過在i++使其每遞增一次出現。

+0

這真的很優雅。 – iambriansreed 2012-07-20 18:59:03

4

這是增量器會進來。

$i++將由一個被採取的任何行動後增加值。

++$i將在採取任何操作之前將值遞增1。

$html=<<<EOF 

    <p>{${$var[$i++]}[name]}</p> 
    <p>{${$var[$i++]}[name]}</p> 
    <p>{${$var[$i++]}[name]}</p> 
    <p>{${$var[$i++]}[name]}</p> 

EOF; 

實施例:

$i = 0; 
echo $i++; // echo's 0 

$i = 0; 
echo ++$i; // echo's 1 
-2
$new_i = 0; 

$html=<<<EOF 

    <p>{${$var[$new_i]}[name]}</p> 
    <p>{${$var[++$new_i]}[name]}</p> 
    <p>{${$var[++$new_i]}[name]}</p> 
    <p>{${$var[++$new_i]}[name]}</p> 

EOF; 

使用++給一個變量的左側將遞增一個的值被使用的變量之前。

+3

爲什麼不好回答? – 2012-07-20 18:03:51

+0

@sixeightzero定義不好。 – iambriansreed 2012-07-20 18:04:11

+0

@anonymousdownvotingislame,注意在OP問題和「好」答案中,所有的行都是一樣的。你的一條線不像其他線。 – 2012-07-20 18:05:16