我有这个数组,需要在图表中使用它
在数据索引中,我有这个值 [1,9] ,它来自逗号分隔爆炸函数,周围没有引号。
$main_arr = array(
"label" => 'Total Clicks',
"data" => [$total_clicks],
"backgroundColor" => "rgba(255, 0, 0, 1)",
);
然后我使用json_encode将数组转换为json格式,
[{"label":"Total Clicks","data":["1, 9"],"backgroundColor":"rgba(255, 0, 0, 1)"}]
如您在上面看到的,在方括号中有双引号,如果我在数据索引中传递静态值,即[1,9],则可以正常工作。我尝试了正则表达式,子字符串,rtrim等,但是没有任何人工作。 非常感谢您的帮助!
答案 0 :(得分:1)
将字符串转换为ints
的数组:
$total_clicks = "1, 9";
print_r(array_map('intval', explode(', ', $total_clicks)));
将字符串转换为strings
的数组:
$total_clicks = "1, 9";
print_r(array_map('trim', explode(', ', $total_clicks)));
答案 1 :(得分:1)
您一次遇到几个问题。首先,您的值是字符串,其次,您有多个要爆炸的值,所以您有奇异的值:
$total_clicks = '1, 9'; // value guessed based on unexpected output in question
$clickArray = explode(',', $total_clicks);
$clickArray = array_map('trim', $clickArray); // remove white spaces
$clickArray = array_map('intval', $clickArray); // cast everything to int
$main_arr = array(
"label" => 'Total Clicks',
"data" => $clickArray,
"backgroundColor" => "rgba(255, 0, 0, 1)",
);
echo json_encode($main_arr);
此输出:
{"label":"Total Clicks","data":[1,9],"backgroundColor":"rgba(255, 0, 0, 1)"}
对于更草率的方法,您甚至可以跳过将空白修剪掉的行,因为强制转换为整数将隐式执行此操作,但是我希望处理的数据流整洁。