@aopil

Как сравнить значения из массива?

array(3) {
  [0]=>
  array() {
    ["Id"]=> ""
    ["No"]=> "123"
    ["Number"]=> "55555"
    ["Status"]=> "0"
  }
  [1]=>
  array() {
    ["Id"]=> ""
    ["No"]=> "543"
    ["Number"]=> "00658"
    ["Status"]=> "0"
  }
  [2]=>
  array() {
    ["Id"]=> ""
    ["No"]=> "63"
    ["Number"]=> "8222"
    ["Status"]=> "0"
  }
}


Мне нужно сравнить Number, типо такого:

if ($array["number"] == '8222' && $array["number"] == '00658' && $array["number"] == '55555') {
echo 'Success!';
}


Посоветуйте, как и чем (какой функцией) будет лучше сравнивать? Может есть функция какая-то, где могу загрузить только числа, и указать массив?
  • Вопрос задан
  • 109 просмотров
Решения вопроса 1
@Yadalay
Php, Mysql, Html, Css, Js/Jquery/Ajax, Laravel
$array = []; // Ваш массив.
$numbers = array_column($array, 'number'); // Получаем массив из всех значений number.

if (in_array('8222', $numbers) && in_array('00658', $numbers) && in_array('55555', $numbers)) {
    echo 'Success!';
}

UPD:
$array = []; // Ваш массив.
$numbers = array_column($array, 'number'); // Получаем массив из всех значений number.

$needle = ['8222', '00658', '00658']; // Необходимые Вам номера.

/* Сравнение кол-ва перечисленных Вами номеров с кол-вом найденных по ним элементов.
Если они равны, то все элементы найдены и выводится success. */
if (count(array_intersect($numbers, $needle)) == count($needle)) {
    echo 'Success!';
}

UPD2:
$array = []; // Ваш массив.
$numbers = array_column($array, 'number'); // Получаем массив из всех значений number.

$needle = ['8222', '00658', '00658']; // Необходимые Вам номера.
$result = array_diff($numbers, $needle); // Расхождение массивов.

/* Если разницы нет, то выводим Success! */
if (! $result) {
    echo 'Success!';
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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