我有一个PHP foreach循环。每次迭代后但最后一个逗号","应该显示。这本身并不是一个问题,但事实上我也有一个" if"我的foreach循环中的陈述。
例如:
$array = Array ( [0] => Array ( [0] => 41 [1] => Business 1 [2] => 37) [1] => Array ( [0] => 42 [1] => Business 2 [2] => 36));
foreach($array as $index => $item) {
if ($item[2] == 37){
$data = $item[1];
if ($item !== end($array)) $data .= ',';
echo $data;
}
}
这是我实际代码的缩小版本,但基础是相同的。
我的问题是,即使迭代是最后一次显示,也会插入逗号,因为foreach循环计算所有项目,而不仅仅是那些适用于"以及#34;言。
我很难解释这些事情,所以如果你需要我,请让我澄清一切。
基本上,如何确保不应用最后一个逗号?
答案 0 :(得分:2)
在foreach
中构建一个数组,然后implode
在循环之外构建一个数组,并将,
作为描述符。
答案 1 :(得分:1)
一种方法是使用implode
$array = Array ( [0] => Array ( [0] => 41 [1] => Business 1 [2] => 37) [1] => Array ( [0] => 42 [1] => Business 2 [2] => 36));
$finishedItems = array();
foreach($array as $index => $item) {
if ($item[2] == 37){
finishedItems[] = $item[1];
}
}
echo implode(',',finishedItems);
答案 2 :(得分:0)
你可以一直添加逗号并删除foreach之后的最后一个逗号,其中substr函数从1到lenght-1