Задать вопрос
@SpeakeazyYT1

Как проверить из двух многомерных массивов идентичность артикула и если артикулы из 2-ух массивов не совпадают, то выполняем действие PHP?

Добрый день. Имеется 2 массива:
1 (в котором ищем):
Array
(
	[0] => Array(
		[PROPERTY_31_VALUE] => MTN6710-0004
	),
	
	[1] => Array(
		[PROPERTY_31_VALUE] => HUHG3578-FU
	),
	...
)

2:
Array
(
	[0] => Array(
		[PROPERTY_22_VALUE] => FUGURNG24-0005
	),
	
	[1] => Array(
		[PROPERTY_22_VALUE] => 93858FIHEJ-348
	),
	...
)


Как сделать условие - если в каждом элементе многомерного массива (1) нет совпадения по ариикулу из массива (2), то выполняем действие (например посчитать сколько таких элементов).

Я пробовал использовать следующий код:
foreach ($arr1 as $arr1Item) {

	foreach ($arr2 as $arr2Item) {
		if ($arr2Item['PROPERTY_22_VALUE'] !== $arr1Item['PROPERTY_31_VALUE']) {
			$countElko[] = $arr2Item;
		}
	}
	
}


Но тут есть одно НО, результат был бы успешным, если бы скрипт дошёл до конца, но он обрывается на ошибке нехватки памяти:
mmap() failed: [12] Cannot allocate memory
PHP Fatal error:  Out of memory (allocated 533557248) (tried to allocate 536870920 bytes) in

Как можно данный код оптимизировать?
  • Вопрос задан
  • 93 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
@kakisaebalsujit
Попробуй вот так
$do1 = '0';

foreahc ($arr1 as $arr1Item) {
    while (count($arr1) == $i) {
    	foreahc ($arr2 as $arr2Item) {
        	if ($arr1Item !== $arr2Item) {
        		$do = '1';
        		break;
        	}
        	i++;
      	}
    }
}


if ($do == '1') {
	//ваше действие
}

По идеи должно работать)
Ответ написан
Комментировать
erge
@erge
Примус починяю
У вас же оба массива представлены как массив массивов и первый ключ это цифровой индекс.
что если в новый массив запоминать не элементы массива $arr2, а ключи несовпадающих элементов.
По идее это должно занять значительно меньше места.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽