从两个变量获取基于UUID的所有材料

时间:2018-11-07 08:18:40

标签: php laravel-5

所以,我有$patient_banner返回此信息:

[
    "3d078010-e24b-11e8-ab1d-2b077991ec5f",
    "64095f20-e25c-11e8-a2de-171e70f82e0f",
    "6b3ea0e0-e24b-11e8-8316-13a0f1f91303",
    "d9b275b0-e249-11e8-b8ce-fd92c15325d5",
    "7535baf0-e23e-11e8-8297-f50579ab9646"
]

我有$material_ids返回此信息:

[
    "65903500-9fe2-11e8-9dc3-9d0a219835de",
    "67e52880-d74f-11e8-921e-8f389ce79225"
]

我正在执行以下代码:

$material  = new Material;

$materials  = $material->whereIn(
   'uuid',
   [$material_ids, $patient_banner]
);

我想发生的是,它将返回同时具有$patient_banner$material_ids的UUIDS的物料,因此它应该返回7种物料,但是我得到的只有2种物料在$material_ids中。我应该怎么做才能从2个不同的变量中获得7种材料?

1 个答案:

答案 0 :(得分:2)

您可以使用array_merge将两个数组合并为一个:

$materials  = $material->whereIn(
   'uuid',
   array_merge($material_ids, $patient_banner)
);

您当前的尝试[$material_ids, $patient_banner]将不会合并两个数组。相反,它将创建一个数组数组,如下所示:

[
 [0] => [
         "3d078010-e24b-11e8-ab1d-2b077991ec5f",
         "64095f20-e25c-11e8-a2de-171e70f82e0f",
         "6b3ea0e0-e24b-11e8-8316-13a0f1f91303",
         "d9b275b0-e249-11e8-b8ce-fd92c15325d5",
         "7535baf0-e23e-11e8-8297-f50579ab9646"
        ], 
 [1] => [
         "65903500-9fe2-11e8-9dc3-9d0a219835de",
         "67e52880-d74f-11e8-921e-8f389ce79225"
        ]
]