Взорвать строку в 2d массив - PullRequest
       19

Взорвать строку в 2d массив

2 голосов
/ 09 сентября 2011

Допустим, у меня была такая строка.

яблоко: бумага: красный, груша: камень: синий, персик: ножницы: зеленый

Как бы вы взорвали это в многомерный массив?Не могли бы вы сделать вложенный цикл разбиения?Что-то вроде разделения строки на запятую, а затем снова на двоеточие внутри цикла.Как вы используете взорваться таким образом?Должно быть, я упускаю что-то очевидное.Конечный результат должен выглядеть примерно так:

[0] [0] = яблоко [0] [1] = груша [0] [2] = персик

[1] [0]= бумага [1] [1] = камень [1] [2] = ножницы

[2] [0] = красный [2] [1] = синий [2] [2] = зеленый

Спасибо.

Ответы [ 2 ]

8 голосов
/ 09 сентября 2011

Вы можете звонить, взрываться несколько раз:

$string = 'apple:paper:red,pear:rock:blue,peach:scissors:green';
$result = array();
foreach (explode(',', $string) as $piece) {
    $result[] = explode(':', $piece);
}
0 голосов
/ 19 ноября 2017

Попробуй:

$string = 'apple:paper:red,pear:rock:blue,peach:scissors:green';
foreach (explode(',', $string) as $key=>$piece) {
  foreach (explode(':', $piece) as $k=>$column) {
    $result[$key][$k] = $column;
  }
}

Может помочь заставить его выйти так, как вы хотите. (Я проверял, и это работает для меня;))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...