Как преобразовать строку в массив?

Мне нужно преобразовать строку

"name1", "b", "2", "name2", "c", "3", "name3", "b", "2", .... 

к массиву вроде

 $arr[0]['name'] = "name1"; $arr[0]['char'] = "b"; $arr[0]['qnt'] = "2"; $arr[1]['name'] = "name2"; $arr[1]['char'] = "c"; $arr[1]['qnt'] = "3"; $arr[2]['name'] = "name3"; $arr[2]['char'] = "b"; $arr[2]['qnt'] = "2"; 

Я использовал explode для извлечения строки в массив, но она не работает

Есть идеи?

 $input = '"name1", "b", "2", "name2", "c", "3", "name3", "b", "2"'; $input = str_replace('"', '', $input); $input = explode(', ', $input); $output = array(); $i = 0; while ($i < count($input)) { $output[] = array( 'name' => $input[$i++], 'char' => $input[$i++], 'qnt' => $input[$i++] ); } print_r($output); 

Вывод:

 Array ( [0] => Array ( [name] => name1 [char] => b [qnt] => 2 ) [1] => Array ( [name] => name2 [char] => c [qnt] => 3 ) [2] => Array ( [name] => name3 [char] => b [qnt] => 2 ) ) 

Если вам не нужны ключи массива, которые являются числовыми, вы можете сделать следующее:

 $string = 'name1, b, 2, name2, c, 3, name3, b, 2'; print_r( array_chunk( explode(',', $string), 3 ) );