CrewCut
@CrewCut
Коплю силы на переезд в тропики

Как можно преобразовать значение у элемента массива в массив?

Есть массив вот такого вида:

Array
(
    ["Московская обл."] => "1 Мая","1 Поселок","2-я Смирновка","3-й Участок","4-й Участок","52127 городок",
    ["Удмуртская респ."] => "Якшур-Бодья",
)


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

Array
(
    ["Московская обл."] => 
		Array (
			"1 Мая",
			"1 Поселок",
			"2-я Смирновка",
			"3-й Участок",
			"4-й Участок",
			"52127 городок"
		),
    ["Удмуртская респ."] => 
		Array (
			"Якшур-Бодья"
		)
)
  • Вопрос задан
  • 138 просмотров
Решения вопроса 1
miraage
@miraage
Старый прогер
$input = [
    'foo' => 'one, two, three',
    'bar' => 'baz',
];

$result = array_map(
    function ($value) {
        return array_map('trim', explode(',', $value));
    },
    $input
);

var_dump($result);

array(2) {
  ["foo"]=>
  array(3) {
    [0]=>
    string(3) "one"
    [1]=>
    string(3) "two"
    [2]=>
    string(5) "three"
  }
  ["bar"]=>
  array(1) {
    [0]=>
    string(3) "baz"
  }
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
romy4
@romy4
Exception handler
с помощью explode
Ответ написан
$your = [];
$ret = array_map(function ($in) {return explode(',', $in);}, $your);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы