将PHP foreach与if语句

时间:2015-09-15 14:48:29

标签: php arrays foreach

我有一个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;言。

我很难解释这些事情,所以如果你需要我,请让我澄清一切。

基本上,如何确保不应用最后一个逗号?

3 个答案:

答案 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