@RomanGorbatko
PHP, Python, NodeJS, Swift

Как узнать, равно ли значение массива указанному числу?

Всем привет!
Есть массив вида:
Array
(
    [0] => Array
        (
            [status] => 
            [user_id] => 39828
            [birthday] => 0
            [gender] => 1
        )

    [1] => Array
        (
            [status] => 
            [user_id] => 39827
            [birthday] => 0
            [gender] => 1
        )

    [2] => Array
        (
            [status] => 
            [user_id] => 38497
            [birthday] => 22
            [gender] => 1
        )

    [3] => Array
        (
            [status] => 
            [user_id] => 37043
            [birthday] => 29
            [gender] => 1
        )

)


Мне нужно без использования циклов узнать есть ли массив с элементом [user_id] === 37043 (например), и если есть - удалить.

Пробовал array_map(), но, последним аргументом он принимает массив, а мне нужно передать только 37043.

Есть идеи?
  • Вопрос задан
  • 2445 просмотров
Пригласить эксперта
Ответы на вопрос 3
@maksmaers
Возвращает найденные вхождения
$user_id = 37043;

$res = array_filter($your_array, function($arr) use ($user_id){
     return ($arr['user_id'] == $user_id);
});
В другом случае возвращает пустой массив
Ссылка на функцию - php.net/manual/en/function.array-filter.php
Ответ написан
iDennis
@iDennis
А чем цикл вам не нравится?
Ответ написан
Aliansys
@Aliansys
Я думаю вам подойдет метод array_filter (nl3.php.net/manual/en/function.array-filter.php)

То есть получится что-то вроде:
$result= array_filter($array, function($var){
return $var['user_id'] == <искомое_значение>
})


За верность кода не ручаюсь. Не писал на PHP 100500 лет. В JavaScript этот метод работает так)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы