如何从方括号中删除数组值中的外引号

时间:2020-04-18 16:22:33

标签: php arrays json

我有这个数组,需要在图表中使用它

数据索引中,我有这个值 [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等,但是没有任何人工作。 非常感谢您的帮助!

2 个答案:

答案 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)"}

对于更草率的方法,您甚至可以跳过将空白修剪掉的行,因为强制转换为整数将隐式执行此操作,但是我希望处理的数据流整洁。