Почему не работает in_array?

Необходимо проверить есть ли хэш товара и вывести только уникальные товары.
$i = 0;
$arr_hash = array();
while($i < 5000000) {
	if($url[$i][1] == NULL) { break; }
	$hash = md5( $price[$i][1] . $name[$i][1] );

	if (!in_array($hash, $arr_hash)) {
		$arr_hash = array_push($arr_hash, $hash);
		echo $url[$i][1] . ' :: ' .$price[$i][1]. ' :: ' .$picture[$i][1]. ' :: ' .$name[$i][1]. ' :: ' .$categoryId[$i][1]. ' :: '  .$hash. ' <br> ' ;
	}
	$i++;
}

При такой конструкции проскакивают товары с одинаковым хэшем, что я делаю не так?
  • Вопрос задан
  • 2402 просмотра
Решения вопроса 1
alksily
@alksily
Software developer, CTO
$arr_hash = array_push($arr_hash, $hash);

$arr_hash в данном случае будет не массивом, а количеством элементов в массиве.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
SagePtr
@SagePtr
Еда - это святое
int array_push ( array &$array , mixed $value1 [, mixed $... ] )

Порядок аргументов там другой. Да, PHP этим часто страдает, похожие по логике функции часто имеют разный порядок аргументов.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
Бюро Цифровых Технологий Санкт-Петербург
от 120 000 до 180 000 ₽
04 мая 2024, в 06:10
4000 руб./за проект
04 мая 2024, в 05:49
10000 руб./за проект
04 мая 2024, в 03:57
10000 руб./за проект