Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP Foreach-不同的最后一行_Php - Fatal编程技术网

PHP Foreach-不同的最后一行

PHP Foreach-不同的最后一行,php,Php,我使用foreach语句将我得到的数据回显到jquery图表(flotchart)。表单需要是{“label”,data},{“label”,data},{“label”,data} 但是我的foreach语句在每一行后面都添加了一个逗号,包括最后一行,我不能用逗号,因为它破坏了脚本 我目前正在使用 foreach ($bycountry as $country) {print '{ label: "' . $country['origincountry'] . '", data: ' . $

我使用foreach语句将我得到的数据回显到jquery图表(flotchart)。表单需要是
{“label”,data},{“label”,data},{“label”,data}

但是我的foreach语句在每一行后面都添加了一个逗号,包括最后一行,我不能用逗号,因为它破坏了脚本

我目前正在使用

foreach ($bycountry as $country) {print 
'{ label: "' . $country['origincountry'] . '", data: ' . $country['countrytotal']. ' }, ';
}
这给了我:
{“label”,data},{“label”,data},{“label”,data},

最后一行不需要逗号

像这样使用它

foreach ($bycountry as $country) {
$str .= '{ label: "' . $country['origincountry'] . '", data: ' . $country['countrytotal']. ' }, ';
}

$str = trim($str,",");
print $str;
这将删除您可以使用的最后一个

希望这有帮助

你试过了吗

您需要稍微重新组织阵列,但这是一种更干净的方法

另一种方法是使用
内爆
,但是您仍然需要重新组织阵列:

$country_for_implode = array();
foreach($bycountry as $country){
   $country_for_implode[] = "{ label: {$country['origincountry']}, data: {$country['countrytotal']}}";
}

echo implode(",", $country_for_implode);

使用数组,您可以通过以下方式获得最后一个关键点:

// Extract the last array item and return it's key value
$last_key = key(array_slice($bycountry, -1, 1, TRUE));

$out = '';

foreach ($bycountry as $key => $country)
{
    $out .= '{ label: "' . $country['origincountry'] . '", data: ' . $country['countrytotal']. ' }';

    // If this is not the last key
    if ($key !== $last_key)
    {
        // Add the trailing comma
        $out .= ',';
    }
}

print ($out);
就用这个吧

$temp = array();
foreach ($bycountry as $country) 
{
    $temp[] = '{ label: "' . $country['origincountry'] . '", data: ' . country['countrytotal']. ' } ';
}
print implode(",", $temp);

希望这会有所帮助。

为什么要这样编写json?只需使用json_encode()。或者它不是json?我不认为说“另一种方式”会增加价值。这是错误的方法,还有其他答案可以证明这一点。最好只是指出正确的方式,即json编码,不管怎样,它都是一个有用的模板。我很惊讶有多少声称自己是专业技术人员的人不知道这种方法。
// Extract the last array item and return it's key value
$last_key = key(array_slice($bycountry, -1, 1, TRUE));

$out = '';

foreach ($bycountry as $key => $country)
{
    $out .= '{ label: "' . $country['origincountry'] . '", data: ' . $country['countrytotal']. ' }';

    // If this is not the last key
    if ($key !== $last_key)
    {
        // Add the trailing comma
        $out .= ',';
    }
}

print ($out);
$temp = array();
foreach ($bycountry as $country) 
{
    $temp[] = '{ label: "' . $country['origincountry'] . '", data: ' . country['countrytotal']. ' } ';
}
print implode(",", $temp);
$no = 1;
foreach ($bycountry as $country) {
    if($no== 1)
    {
        print  '{ label: "' . $country['origincountry'] . '", data: ' . $country['countrytotal']. ' } ';
        $no ++;
    }
    else
    {
        print  ',{ label: "' . $country['origincountry'] . '", data: ' . $country['countrytotal']. ' } ';
    }
}