我基本上只是试图摆脱这个:
$value="20, 40, 40"
$color="blue, green, orange"
对此:
var data = [ { value: 20, color:"blue" }, { value : 40, color : "green" }, { value : 40, color : "orange" }]
所以我需要提取值和颜色添加把它们放在这个对象数组中。 我知道如果只需设置值就可以做到这一点,而不是使用explode和foreach设置颜色,但我不知道如何做到这一点需要两个值。
非常感谢任何想法。
谢谢,
大卫
答案 0 :(得分:1)
explode
两个数组,使用索引一次迭代两个,使用给定索引处的两个数组中的值来创建object / tuple / whatever,并且当它们将它们存储在{{ 1}}。
答案 1 :(得分:1)
这样做
$value="20, 40, 40";
$color="blue, green, orange";
$explVal = explode(",", $value);
$explCol = explode(",", $color);
$arr = array();
for ($i=0; $i<count($explVal); $i++)
{
$arr[$i]['value'] = $explVal[$i];
$arr[$i]['color'] = $explCol[$i];
}
然后做
$result = json_encode($arr);
答案 2 :(得分:0)
那么每个值中是否总会有相同数量的值?
$value="20, 40, 40";
$color="blue, green, orange";
$values = explode(", ",$value);
$colors = explode(", ",$color);
$output = 'var data = [ ';
for($i = 0; $i < count($values) && $i < count($colors); $i++){
$output .= '{ value: '.$values[$i].', color:"'.$colors[$i].'" }, ';
}
$output = substr($output,0,-2);
$output .= ']';
echo $output;
结果是:
var data = [ { value: 20, color:"blue" }, { value: 40, color:"green" }, { value: 40, color:"orange" }]