# OtherWorld (22.07.2017 / 22:10)
Решил вопрос с помощью нескольких циклов и многомерного массива
Сегодня расковырял твою задачу на чистых регулярках, с группировкой по массивам - у меня код получился менее затратный
regex (+/-)
<?php
$str = '
<div class = "list">
<div class = "room">
<div class = "user" style = "font-size: 1px;"></div>
<div class = "user" style = "font-size: 2px;"></div>
<div class = "user" style = "font-size: 3px;"></div>
</div>
<div class = "room">
<div class = "user" style = "font-size: 4px;"></div>
<div class = "user" style = "font-size: 5px;"></div>
<div class = "user" style = "font-size: 6px;"></div>
</div>
</div>
';
$patt = '~
(?:
(?<=<div\sclass\s=\s"room">)
(?:.*)
(?=</div>(?:\s*)<div\sclass\s=\s"room">)
|
(?<=<div\sclass\s=\s"room">)
(?:.*)
(?=</div>(?:\s*)</div>)
)
~sx';
if (preg_match_all($patt, $str , $a)) {
$out = [];
foreach ($a[0] as $item) {
!preg_match_all('~style\s?=\s?"([^"]+)"~', $item, $arr)
?: $out[] = join(',', $arr[1]);
}
echo '<pre>'; print_r($out); echo '</pre>';
}
/* Вывод:
array(
[0] => font-size: 1px;,font-size: 2px;,font-size: 3px;
[1] => font-size: 4px;,font-size: 5px;,font-size: 6px;
)
*/
ДоХтор, Ну это я за пример спрашивал, чтобы разобраться в phpQuery. Но всё равно спасибо за "отзывы".
# OtherWorld (24.07.2017 / 11:38)
ДоХтор, Ну это я за пример спрашивал, чтобы разобраться в phpQuery. Но всё равно спасибо за "отзывы".
Да так-то не за что. Я просто хотел понять, можно ли обойтись в решении без использования сторонних библиотек.
OtherWorld, в любом случае надо работать с ДОМ деревом