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