gpt4 book ai didi

PHP - 在数组中搜索,如果有肯定结果,则将属性添加到原始数组

转载 作者:行者123 更新时间:2023-12-04 02:06:36 25 4
gpt4 key购买 nike

我有两个数组 - $products$userProducts (这必须通过两个查询来完成,因为我正在根据名称搜索产品,并且有我在另一个表中存储用户想要出售的产品,并且我想向用户表明他已经将该产品出售)。

$products 数组 如下所示:

[
'id' => 1,
'name' => 'product name',
'synonim' => 'synonim'...

],
[
'id' => 2,
'name' => 'product name 2',
'synonim' => 'synonim'...

]....

$userProducts看起来像这样:

[
'product_id' => 1
],
[
'product_id' => 75
]

我想向 $products 数组添加属性(或者如果有更好的方法来做到这一点,也可以)'userHasProduct' => true ,如果 $userProducts 包含 product_id,它与 $products id 中的 id 进行数学计算。我怎样才能做到这一点?

最佳答案

同意@Erik的观点,如果您可以修改原始查询,那么这可能最好在数据库层解决。如果没有,那么你可以使用这样的东西:

$products = array_map(function ($product) use ($userProducts) {
if (in_array($product['id'], array_column($userProducts, 'product_id'))) {
$product['found_in_user_products'] = true;
}

return $product;
}, $products);

这将循环遍历 $products 数组中的每个条目,并将 ID 与 $userProducts 中的列表进行比较。如果找到,则会将 found_in_user_products 键设置为 true。

工作示例:https://eval.in/858063

作为引用,要在 SQL 中解决这个问题可能类似于:

   Select p.id, p.name, p.synonim, count(up.product_id)
From products p
Left Join user_products up On p.id = up.product_id
Group By p.id, p.name, p.synonim

虽然显然没有看到你的架构,但很难准确地说

关于PHP - 在数组中搜索,如果有肯定结果,则将属性添加到原始数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46118447/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com