Слияние двух foreach в php laravel / api

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

Вы можете использовать mongo-join-query , чтобы автоматически создать конвейер агрегации из вашего запроса.

Так будет выглядеть ваш запрос:

const mongoose = require("mongoose");
const joinQuery = require("mongo-join-query");

joinQuery(
    mongoose.models.Comment,
    {
        find: { pid:444 },
        populate: ["uid"]
    },
    (err, res) => (err ? console.log("Error:", err) : console.log("Success:", res.results))
);

Ваш результат будет иметь пользовательский объект в поле uid, и вы можете связать столько уровней, сколько хотите. Вы можете заполнить ссылку на пользователя, которая ссылается на команду, которая ссылается на что-то еще и т. Д.

Отказ от ответственности: я написал mongo-join-query для решения этой точной проблемы.

0
задан jedi Arvin 27 February 2019 в 06:07
поделиться

1 ответ

Вы можете сделать это проще, используя array_combine :

$newArray = [];
$keys = ['name', 'sex', 'age', 'height', 'weight'];
foreach (explode(PHP_EOL, Storage::get('upload/test.txt')) as $line) {
    $newArray[] = array_combine($keys, explode(',', $line));
}

Или вы можете использовать array_map () и сделать что-то вроде:

[111 ]
0
ответ дан Ross Wilson 27 February 2019 в 06:07
поделиться
Другие вопросы по тегам:

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