0

我基本上只是想从中得到:

$value="20, 40, 40" 
$color="blue, green, orange"

对此:

var data = [ { value: 20, color:"blue" }, { value : 40, color : "green" }, { value : 40, color : "orange" }]

所以我需要提取值和颜色并将它们添加到这个对象数组中。我知道如果只需要设置值,而不是使用explode和foreach设置颜色,我知道如何做到这一点,但我不知道如何在需要这两个值的情况下做到这一点。

任何想法都非常感谢。

谢谢,

大卫

4

3 回答 3

1

explode both arrays, use an index to iterate over both at once, using the values in both arrays at a given index to create the object/tuple/whatever, and as you make them store them in data.

于 2013-04-12T05:44:03.557 回答
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);
于 2013-04-12T05:48:38.293 回答
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" }]

于 2013-04-12T05:47:47.077 回答