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

Почему не работает 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++;
}

При такой конструкции проскакивают товары с одинаковым хэшем, что я делаю не так?
  • Вопрос задан
  • 2403 просмотра
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 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 этим часто страдает, похожие по логике функции часто имеют разный порядок аргументов.
Ответ написан
Ваш ответ на вопрос

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

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