if语句的for循环 - 没有逗号的数组

时间:2016-03-30 09:12:27

标签: php arrays

这是我的代码部分:

for( $i = $aKeys['iStart']; $i < $aKeys['iEnd']; $i++ )
{
        $aData = $this->aProducts[$aProducts[$i]];

        $content .= '"'.$aData['sName'].'"';

        if ($i < $aKeys['iEnd'])  
        {
           $content .= ', '; 
        } 
        $i2++;
} 

完整代码给我的结果是:

["word1", "word2", "word3", ] 

这是一个简单的数组,我将使用它,但这不起作用,因为在word3之后有一个逗号。如何写这个if语句来获得如下结果:["word1", "word2", "word3"]

5 个答案:

答案 0 :(得分:5)

在长度为1的条件上修复你的错误。

for( $i = $aKeys['iStart']; $i < $aKeys['iEnd']; $i++ ){
        $aData = $this->aProducts[$aProducts[$i]];

        $content .= '"'.$aData['sName'].'"';

        if ($i < $aKeys['iEnd']-1) {
        $content .= ', '; 
        } 
        $i2++;
      } 

答案 1 :(得分:1)

您可以使用rtrim()删除逗号。

rtrim($content, ',');

正如我所见,您希望所有名称都以逗号分隔。你也可以这样做:

$content = array();
for( $i = $aKeys['iStart']; $i < $aKeys['iEnd']; $i++ ){
    $aData = $this->aProducts[$aProducts[$i]];
    $content[] = $aData['sName'];
}

echo implode(',',$content);

答案 2 :(得分:1)

或者,您可以使用array。最后只需implode他们。

for( $i = $aKeys['iStart']; $i < $aKeys['iEnd']; $i++ ){
    $aData = $this->aProducts[$aProducts[$i]];
    $content[] = '"'.$aData['sName'].'"';
}

$content = '"' . implode('","', $content) . '"';

答案 3 :(得分:1)

for( $i = $aKeys['iStart']; $i < $aKeys['iEnd']; $i++ ){
        $aData = $this->aProducts[$aProducts[$i]];

        $content .= '"'.$aData['sName'].'"';

        if ($i < $aKeys['iEnd'] && $i!=($aKeys['iEnd']-1)) { //this condition also considers $i not to be the last element of the array before appending the comma to it.
        $content .= ', '; 
        } 
        $i2++;
      } 

答案 4 :(得分:0)

使用array_push();功能

$var = array();

loop(condition){
    array_push($var, $value);
}