2013-04-12 2 views
0

Я в основном просто пытается получить от этого:разделенных запятыми список в массив объектов со значениями в PHP

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

Для этого:

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

Поэтому мне нужно, чтобы извлечь значение и добавить цвет, добавьте их в этот массив объектов. Я знаю, как это можно сделать, если нужно установить только значение, а не цвет, а также использовать explode и foreach, но я не знаю, как это сделать, требуя обоих значений.

Любые идеи очень ценятся.

Спасибо,

Дэвид

ответ

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); 
+0

Спасибо chandresh_cool, который отлично работает. Спасибо всем, кто ответил также. – David

+0

Cheers David. Желание U Счастливое кодирование :) –

1

explode оба массива, используйте индекс для перебора обоих сразу, используя значения в обоих массивах в данном индексе, чтобы создать объект/Кортеж/все, и, как вы заставляете их хранить их в data.

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" }]

+1

Не стройте JSON вручную, используйте функцию [ 'json_encode '] (http://us3.php.net/ma nual/en/function.json-encode.php) – Jon

+0

Это отличная функция, но я не знал, что об этом нужен JSON, поскольку он не был указан, хотя вы можете сделать вывод, что из его примера. По крайней мере, он получил некоторые идеи. : P –

+0

Спасибо, это очень помогло. – David

Смежные вопросы