Laravel сделать массив из других объектов массива - PullRequest
1 голос
/ 27 мая 2020

У меня есть общий массив данных, и мне нужно получить массив специальных c данных внутри этого общего массива, чтобы я мог сопоставить его с моей базой данных.

Код

$nums = [];
foreach($request->phones as $phone) {
    foreach($phone['_objectInstance']['phoneNumbers'] as $number) {
        $nums = $number['value'];
    }
}

$contacts = User::whereIn('phone', $nums)->get();

PS: $number['value'] - это данные, которые я хочу сделать из них.

Пример данных, которые я получаю в бэкэнде

aravel

текущая ошибка

Argument 1 passed to Illuminate\\Database\\Query\\Builder::cleanBindings() must be of the type array, string given, called in /home/....../vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php on line 918

exception: "TypeError"

Вопрос

Как я могу сделать массив из моих номеров?

Ps: пожалуйста, если вы знаете более чистый способ Чтобы написать этот код, не стесняйтесь поделиться со мной моим кодом выше.

Ответы [ 2 ]

4 голосов
/ 27 мая 2020

Вы назначаете $nums новой строкой на каждой итерации l oop, а не добавляете ее в массив.

Просто отключите эту строку:

$nums = $number['value'];

Для

$nums[] = $number['value'];

Здесь - это документы для array_push(), что является долгим способом написания второго линия.

2 голосов
/ 27 мая 2020

Вы объявляете массив $nums, но внутри l oop вы снова объявляете его строкой. Исправьте подобные присвоения массивов.

$nums[] = $number['value'];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...