我目前有我的代码从数据库输出数据,但我不确定如何在结果不是最终条目的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”}
答案 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`