除非最终结果,否则在foreach期间回显文本

时间:2013-12-02 11:40:38

标签: php

我目前有我的代码从数据库输出数据,但我不确定如何在结果不是最终条目的foreach中附加文本。

//Print each result 
foreach($new_array as $array){

//print out a result with formatting  
Echo $Content1 = <<<CONTENT1
{"
CONTENT1;

Echo $array['f1'];

Echo $Content2 = <<<CONTENT2
"}{"
CONTENT2;

Echo $array['f2']; 

Echo ".";

Echo $array['f3'];

Echo $Content3 = <<<CONTENT3
"}
CONTENT3;

Echo“,”//如果不是最终条目

};

?> 

所以简而言之就是转换输出;

{ “条目”} { “Name.ID”} { “条目”} { “Name.ID”}

{“Entry”} {“Name.ID”},{“Entry”} {“Name.ID”}

3 个答案:

答案 0 :(得分:2)

试试这个

$endvar=end($new_array);

它会将最后一个值存储在数组中,然后您可以使用 if condition

进行检查
foreach($new_array as $array){
if($array==$endvar)
{
// do whatever you want to do here
}
else
{
// else code
}
}

答案 1 :(得分:0)

对于小型数据集,如果您同时拥有所有可用数据,则可以使用implode

$content = array();
foreach ($new_array as $arr) {
    $content[] = <<<CONTENT
        {{$arr['f1']}}{{$arr['f2']}.{$arr['f3']}}
CONTENT;
}
print implode(',', $content);

您还可以使用array mapping function

print implode(',', array_map(function($arr){
    return '{' . $arr['f1'] . '}{' . $arr['f2'].'.'.$arr['f3'].'}';
}, $new_array);

print implode(',', array_map(function($arr){
    return <<<ITEM
{$arr[f1]}{$arr[f2].$arr[f3]}
ITEM;
}, $new_array);

否则,如果要在循环中加载数据,请保存字段分隔符:

$before = '';
$content = '';
foreach ($new_array as $arr) {
    $content .= $before;
    $content .= "{{$arr[f1]}}{{$arr[f2]}.{$arr[f3]}}"
    $before = ',';
}
print $content;

或一次打印一次:

$before = '';
foreach ($new_array as $arr) {
    print $before;
    print "{{$arr[f1]}}{{$arr[f2]}.{$arr[f3]}}"
    $before = ',';
}

建议不要使用名为$array(或$string等的变量);如果这与JSON编码有关,请同时查看json_encode

答案 2 :(得分:0)

尝试

$str = '';
foreach($new_array as $array){
   $str .= "{$array['f1']} {$array['f2']} {$array['f3']},";
}
echo substr($str,0,-1); `// trim last character of your string`