-2

我正在使用 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},

最后一行不需要逗号

4

6 回答 6

4

你试过json_encode了吗?

$country_to_json = array(
    array('label'=>'Portugal', 'data'=>12), 
    array('label'=>'india', 'data'=>13) 
);

echo json_encode($country_to_json);

您需要稍微重新组织您的数组,但这是一种更简洁的方法。

另一种方法是使用implode,但是无论如何您都需要重新组织数组:

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

echo implode(",", $country_for_implode);
于 2012-09-26T06:36:33.323 回答
1

就用这个

$temp = array();
foreach ($bycountry as $country) 
{
    $temp[] = '{ label: "' . $country['origincountry'] . '", data: ' . country['countrytotal']. ' } ';
}
print implode(",", $temp);
于 2012-09-26T06:41:14.973 回答
1

您可以使用substr

$str = '';  
foreach ($bycountry as $country) {
$str .= '{ label: "' . $country['origincountry'] . '", data: ' . $country['countrytotal'].     ' }, ';
}
echo $str = substr($str, 0, strlen($str)-1);

希望这有帮助!

于 2012-09-26T06:35:39.430 回答
1
$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']. ' } ';
    }
}

希望这会有所帮助。

于 2012-09-26T06:44:20.393 回答
0

像这样使用它

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

$str = trim($str,",");
print $str;

这将删除最后,

于 2012-09-26T06:33:50.537 回答
0

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

// 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);
于 2012-09-26T06:38:04.117 回答