weranda
@weranda

Как переделать вложенный цикл в PHP?

Приветствую

Есть вложенный цикл на Python (ищет совпадения элементов одного списка в другом):
На Python
a = '''
0
1
2
3
4
5
6
7
8
9'''

b = '''
5
4
3
2
1'''

temp = ''

for x in a.split('\n'):
	for y in b.split('\n'):
		if x == y:
			temp = '+ ' + x
			break
		else:
			temp = '- ' + x
	print(temp)

В результате там где есть совпадения дописывается плюс, где совпадений нет — минус.


Пытаюсь сделать то же самое на PHP, но не получается/ Подскажите пожалуйста, как этот цикл перенести в PHP.
  • Вопрос задан
  • 148 просмотров
Решения вопроса 2
Stimulate
@Stimulate
могу
$a = '
0
1
2
3
4
5
6
7
8
9';

$b = '
5
4
3
2
1';

foreach(explode("\r\n", $a) AS $a_item) {
    if ($a_item != '') {
        if (in_array($a_item, explode("\r\n", $b))) {
                echo '+'.$a_item."\r\n";
        }   
        else {
            echo '-'.$a_item."\r\n";
        }
    }
}
Ответ написан
Комментировать
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
  • explode
  • foreach
  • .=


вот из этого собрать точно получится.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
paulfcdd
@paulfcdd
PHP/Sf/WEB developer
Зачем вам использовать какие-то циклы? Используте стандартные средства PHP, например:

<?php
$a = '
0
1
2
3
4
5
6
7
8
9';

$b = '
5
4
3
2
1';

$arrayA = str_split(preg_replace('/\s+/', '', $a));
$arrayB = str_split(preg_replace('/\s+/', '', $b));
$diff = array_diff($arrayA, $arrayB);
print_r($diff);


В результате вы получите массив, в котором будут содержаться все значения массива $arrayA, отсутствующие в других массивах. А дальше уже можете делать с ним, что угодно - разбить на строку, вывести foreach'ем в список и тд
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы