Поиск противоположной пары в массиве PHP

211
12 апреля 2018, 12:18

Проверить, есть ли в одномерном числовом массиве хотя бы одна пара противоположных чисел. Помогите пожалуйста

Answer 1

Можно использовать побитовый оператор ~ (NOT) в комплекте с функциями поиска in_array() и фильтрации array_filter():

$numbers = [1, 2, 3, 4, 5, 6, -7, 8, 9, -9];
$arr = array_filter($numbers, function($int)use($numbers){
    return in_array(~--$int, $numbers);
});
var_dump($arr);

В результате будет получена пара чисел 9 и -9 (для остальных пары нет)

Answer 2

Ладно, я сделаю это за вас

$arr = [2, 4, 5, -3, -4];
foreach ($arr as $item) {
  if ($item && in_array(0 - $item, $arr) {
    die("Есть!");
  }
}
echo "Нет.";
READ ALSO
Получение переменных из объекта php

Получение переменных из объекта php

Создан объект АВнутри него в методе создается объект Б (другого класса)

240
обмен данными в cache yii2

обмен данными в cache yii2

Есть большая бдНужно выгрузить все данные в cache (сделано)

203
Сломалась корзина на PrestaShop

Сломалась корзина на PrestaShop

Доброго дня всем По неизвестной причине перестала работать корзинаСайт https://alccosttore

249
Как правильно разложить POST запрос?

Как правильно разложить POST запрос?

Отправляю данные ajax-ом:

257