С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
1 / 1 / 0
Регистрация: 09.07.2014
Сообщений: 84

Два вложенных цикла foreach

07.02.2020, 18:36. Показов 3270. Ответов 3

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток

Подскажите как правильно сделать. Идет парсинг со страницы сайта характеристик товара с помощью simple html dom. Все элементы выбираю вот такими двумя цыклами

PHP
1
2
3
4
5
foreach($domTree->find("dt.product-characteristics__label") as $element3)
echo $element3->plaintext.'<br />';
 
foreach($domTree->find("dd.product-characteristics__value") as $element4)
echo $element4->plaintext.'<br />';
Понятно что значение выводиться как:
Значение 1_1
Значение 1_2
Значение 1_3

Значение 2_1
Значение 2_2
Значение 3_3

А мне нужно их сопоставить вот так

Значение 1_1 Значение 2_1
Значение 1_2 Значение 2_2
Значение 1_3 Значение 2_3

Конечно можно все вывести вот так:
Но это не красиво как по мне и неправильно
PHP
1
2
3
4
5
6
7
8
9
10
$char1 = $domTree->find('dt.product-characteristics__label') ;
$char2 = $domTree->find('dd.product-characteristics__value') ;
echo $char1[0]->plaintext.'<br />';
echo $char2[0]->plaintext.'<br />';
echo $char1[1]->plaintext.'<br />';
echo $char2[1]->plaintext.'<br />';
echo $char1[2]->plaintext.'<br />';
echo $char2[2]->plaintext.'<br />';
echo $char1[3]->plaintext.'<br />';
echo $char2[3]->plaintext.'<br />';
Буду весьма благодарен за советы и примеры как правильно это сделать. Спасибо
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.02.2020, 18:36
Ответы с готовыми решениями:

По работе цикла foreach
Уважаемые господа! С наступающим Вас новым! Немного недопонимаю тонкостей работы цикла foreach, в чем и прошу вашей подсказки! В...

Ошибка цикла Foreach
Приветствую. Происходит ошикба при запуске foreach: &lt;?php $arr = array(3, 7, 15, 156, 14, 17, &quot;John&quot;, 'Frenk&quot;,...

Принудительный выход из цикла foreach
Доброго времени суток! Прочитал в интернете, что есть оператор break, но он почему-то выход не осуществляет. Ситуация следующая. Есть...

3
 Аватар для vinikon
340 / 160 / 89
Регистрация: 16.01.2020
Сообщений: 771
07.02.2020, 19:45
Лучший ответ Сообщение было отмечено bibikazgg как решение

Решение

первое, что в подумал:
PHP
1
2
3
4
5
6
7
8
9
10
$dt = []; $dd = [];
foreach($domTree->find("dt.product-characteristics__label") as $element3) {
$dt[] = $element3->plaintext;
}
foreach($domTree->find("dd.product-characteristics__value") as $element4) {
$dd[] = $element4->plaintext;
}
for ($i = 0, $size = count($dt); $i < $size; $i++) {
echo $dt[$i].' '.$dd[$i].'<br/>';
}
1
 Аватар для sad67man
2603 / 1507 / 689
Регистрация: 23.08.2015
Сообщений: 3,814
08.02.2020, 02:14
Лучший ответ Сообщение было отмечено bibikazgg как решение

Решение

PHP
1
2
3
4
5
6
7
8
$labels = $domTree->find("dt.product-characteristics__label");
$values = $domTree->find("dd.product-characteristics__value");
 
foreach($labels as $element) {
    echo $element->plaintext;
    echo current($values)->plaintext; 
    next($values);
}
1
1 / 1 / 0
Регистрация: 09.07.2014
Сообщений: 84
08.02.2020, 08:51  [ТС]
vinikon, sad67man,
Спасибо Вам. Оба варианты работают.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.02.2020, 08:51
Помогаю со студенческими работами здесь

Как выйти из цикла foreach
Как досрочно выйти из цикла foreach?

Цикл: Вывод информации с помощью цикла foreach
Привет, есть цикл foreach из массива парсятся фото большого и мальнького размера $photos_litle //малелькие фото $photos_big ...

Как при использовании цикла foreach не выводить первый элемент массива?
Здравствуйте, есть форма html &lt;form method=&quot;POST&quot; action=&quot;handler.php&quot; id=&quot;form&quot;&gt; &lt;label&gt; Name &lt;input...

Foreach Два двумерных массива объединить в один двумерный
У меня есть 1 массив из всеми данными array(2) { =&gt; array(7) { =&gt; string(1) &quot;3&quot; =&gt; string(1)...

Цикл: С помощью цикла foreach вывести массив в виде: "элемент : значение".
помогите с заданием: Создайте массив с элементами: Name, Address, Phone, Mail и заполните его. С помощью цикла foreach вывести массив в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru