@anton99zel
29а класс средней школы №7

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

echo $smart;
Например:
colors-is-red-or-pink-or-blue-or-tortoise/form-is-elliptical-or-rectangular/material-is-plastic

Как получить массив:
$colors = array('red', 'pink', 'blue', 'tortoise');
$form = array('elliptical', 'rectangular');
$material = array('plastic');
  • Вопрос задан
  • 87 просмотров
Решения вопроса 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
$smart = 'colors-is-red-or-pink-or-blue-or-tortoise/form-is-elliptical-or-rectangular/material-is-plastic';
$defs = [];
foreach(explode('/', $smart) as $part) {
  $def = explode('-is-', $part);
  $defs[$def[0]] = explode('-or-', $def[1]);
}
print_r($defs);

[
  "colors" => ["red", "pink", "blue", "tortoise"],
  "form" => ["elliptical", "rectangular"],
  "material" => ["plastic"]
]
Ответ написан
0xD34F
@0xD34F
$data = array_reduce(explode('/', $str), function($acc, $n) {
  list($key, $values) = explode('-is-', $n);
  $acc[$key] = explode('-or-', $values);
  return $acc;
}, []);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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