Php 在循环之间插入代码的优雅方法
在web开发中,我经常发现我需要格式化和打印各种数据数组,并以某种方式分离这些数据块。换句话说,我需要能够在每个循环之间插入代码,而不必在第一个条目之前或最后一个条目之后插入所述代码。我发现实现这一目标最优雅的方式如下:Php 在循环之间插入代码的优雅方法,php,Php,在web开发中,我经常发现我需要格式化和打印各种数据数组,并以某种方式分离这些数据块。换句话说,我需要能够在每个循环之间插入代码,而不必在第一个条目之前或最后一个条目之后插入所述代码。我发现实现这一目标最优雅的方式如下: function echoWithBreaks($array){ for($i=0; $i<count($array); $i++){ //Echo an item if($i<count($array)-1){
function echoWithBreaks($array){
for($i=0; $i<count($array); $i++){
//Echo an item
if($i<count($array)-1){
//Echo "between code"
}
}
}
函数echoWithBreaks($array){
对于($i=0;$i我认为您正在寻找函数
然后只回显内爆的字符串
我能想到的唯一更优雅的精确算法是:
function implodeEcho($array, $joinValue)
{
foreach($array as $i => $val)
{
if ($i != 0) echo $joinValue;
echo $val;
}
}
当然,这假设$array只由整数而不是键进行索引。不幸的是,我认为使用foreach
没有任何方法可以做到这一点。这在许多语言中都是一个问题
我通常采用以下两种方法之一解决此问题:
您上面提到的方式,除了使用$i>0
而不是$i
使用连接
或
我有时会使用一个技巧:
function echoWithBreaks($array){
$prefix = '';
foreach($array as $item){
echo $prefix;
//Echo item
$prefix = '<between code>';
}
}
函数echoWithBreaks($array){
$prefix='';
foreach($数组作为$项){
echo$前缀;
//回音项
$prefix='';
}
}
如果代码更复杂,则内爆可以处理,我将使用一个简单的布尔值:
$looped = false;
foreach($arr as $var){
if($looped){
//do between
}
$looped = true;
//do something with $var
}
如果我只需要在单个单词或行之间插入一些东西,这将非常有效。但是,我需要分离大块代码-并且围绕长度不确定的代码块内爆大块HTML听起来非常混乱。如果问题不清楚我正在处理HTML块,我深表歉意。我喜欢这样理论上回答,我在发帖前玩了一段时间,但在我看来,必须在循环外定义变量,这比使用简单的for循环更不干净。感谢您的输入。您的第一个解决方案非常有用。谢谢。不,没有!!这与Wrikken的回答类似,只是它不需要if.Whoops.sorry-误读。这是一个合法的解决方案-尽管我告诉Wrikken,foreach循环外的初始化变量让我有点畏缩。感谢您的回复。