2013-03-23 1 views
0

У меня есть массив из операции послевзрывающиеся массив строк

$country = $_POST['country']; //The number of countries differ according to the user selection 
$c = count($country); 

Выход: `

Array ([0] => England,69,93 [1] => Australia,79,84 [2] => Greece,89,73 [3] => Germany,59,73)` 

мне придется разбить его в многомерный массив, как:

> Array ([0] => Array ([0] => England [1] => 69 [2] => 93) 
>   [1] => Array ([0] => Australia [1] => 79 [2] => 84)      
>   [2] => Array ([0] => Greece [1] => 89 [2] => 73) 
>   [3] => Array ([0] => Germany [1] => 59 [2] => 73)) 

Как это сделать в PHP

Я попытался

$r = array(); 

foreach($country as &$r){ 
    $r = explode(",", $r); 
    //for($i = 0; $i < count($country); $i++){ 
    //for($j = 0; $j < count($r); $j++){ 
     //$array[$i][$j] = $r; 
    //} 
    //} 
} 
echo '<br>'; 
print_r($r); 

для цикла также не работает, и, следовательно, прокомментировал это, но оставил его в качестве опции в случае необходимости.

Функция печати теперь печатает только 1 из массива. Не совсем уверен, что я сделал неправильно. Любая помощь приветствуется. Спасибо

+0

попробовать 'print_r ($ страны);' после цикла вместо этого – Crisp

ответ

1

Вы были почти там:

$r = array(); 

foreach($country as $country_item){ 
    $r[] = explode(",", $country_item); 
} 
echo '<br>'; 
print_r($r); 

выше должно работать.

Что может быть еще лучше для Вас (если ваша страна уникальна в каждом массиве):

$r = array(); 

foreach($country as $country_item){ 
    $temp_array = explode(",", $country_item); 
    $r[$temp_array[0]] = array($temp_array[1], $temp_array[2]); 
} 
echo '<br>'; 
print_r($r); 

Это даст вам выход, как следующим образом:

> Array ([England] => Array ([0] => 69 [1] => 93) 
>   [Australia] => Array ([0] => 79 [1] => 84)      
>   [Greece] => Array ([0] => 89 [1] => 73) 
>   [Germany] => Array ([0] => 59 [1] => 73)) 

Таким образом, это означает, что вы можете получить доступ к странам цифры следующим образом:

$r[$country_name]; 
+0

Большое вам спасибо ... Я все еще не понимаю, хотя ... Как я использовал эту строку ... $ r [] = explode (",", $ country_item); и для этого я получаю сообщение об ошибке: Неустранимая ошибка: оператор [] не поддерживается для строк в C: \ wamp \ www \ clar \ test5.php в строке 21 ... еще это сработало, когда я набрал ваш код ... Спасибо еще раз –

0

попробовать этот

for($i=0;$i<count($country);$i++) 
{ 
     $country1[$i] = explode(",", $country[$i]); 
} 
0

Вы подменяете $ г основного массива с $ г из цикла - это решение - всегда разделяет ваш ВАР:

$output = array(); 
foreach($country as $c){ 
    $parts = explode(',',$c); 
    $output[] = $parts; 
} 

print_r($output); 

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

  • Нет связанных вопросов^_^