@mrDolte

Собрать массив из строки — PHP?

Дали задачу.

Есть строка содержащая такое.
<h3></h3>
<dl class="data">
<dt class="name">Поле1</dt>
<dd class="value">Поле1_1</dd>
<dt class="name">Поле2</dt>
<dd class="value">Поле2_2</dd>
</dl>


как собрать такой массив ?
$array = array(
  array(
    "name" => "Поле1",
    "value" => "Поле1_1",
  ),
  array(
    "name" => "Поле2",
    "value" => "Поле2_2",
  )
);
  • Вопрос задан
  • 120 просмотров
Решения вопроса 1
ProjectSoft
@ProjectSoft
Front-end && Back-end разработчик
Используйте регулярку
https://regex101.com/r/WG5LYZ/1/
И обрабатывайте результат в нужный вам формат
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@Yan-s
Есть библиотеки для разбора DOM. Есть библиотеки для разбора XML. Есть регулярки, если жить скучно.
Что у вас не получается?
Ответ написан
@galliard
$source = '<h3></h3>
<dl class="data">
<dt class="name">Поле1</dt>
<dd class="value">Поле1_1</dd>
<dt class="name">Поле2</dt>
<dd class="value">Поле2_2</dd>
</dl>';

$matches = [];

preg_match_all('/class="name">(.+?)<.*?class="value">(.+?)</su', $source, $matches, PREG_SET_ORDER);

$result = array_map(
    function (array $item): array {
        return ['name' => $item[1], 'value' => $item[2]];
    },
    $matches
);
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
от 60 000 руб.
Лайки Новокузнецк
от 40 000 руб.
ЗооОптТорг Нижний Новгород
от 90 000 руб.
22 мая 2019, в 23:03
15000 руб./за проект
22 мая 2019, в 22:44
1000 руб./за проект