Php 正在添加阵列组中不存在的品牌

Php 正在添加阵列组中不存在的品牌,php,arrays,Php,Arrays,对不起,我的英语不好,但这是我的问题 我有一系列的品牌 $brands = ['LENOVO', 'IPHONE', 'SAMSUNG']; 这是来自查询的列表 $list = [ {"name": "rizal", "brand": "LENOVO"}, {"name": "luna", "brand": "

对不起,我的英语不好,但这是我的问题

我有一系列的品牌

$brands = ['LENOVO', 'IPHONE', 'SAMSUNG'];
这是来自查询的列表

$list = [
        {"name": "rizal",  "brand": "LENOVO"},
        {"name": "luna",   "brand": "IPHONE"},
]
我想要的是这样

$list = [
        {"name": "rizal",  "brand": "LENOVO"},
        {"name": "rizal",  "brand": "IPHONE"},
        {"name": "rizal",  "brand": "SAMSUNG"},
        {"name": "luna",   "brand": "LENOVO"},
        {"name": "luna",   "brand": "IPHONE"},
        {"name": "luna",   "brand": "SAMSUNG"},
]
正如你所看到的,我已经根据品牌数量对列表进行了迭代

对于rizal,因为我有3个品牌,它将变成3排,对于luna,我也有3个品牌,所以它将是3排

这是我试过的

foreach ($list as $key => $value) {
    if($value->name == 'rizal')
    {
        foreach ($brands as $key => $brand) {
            if($value->brand != $brand)
            {
                $new_arr['name'] = 'rizal';
                $new_arr['brand'] = $brand;
                $list[]=$new_arr;
            }
        }
    }
    if($value->name == 'luna')
    {
        foreach ($brands as $key => $brand) {
            if($value->brand != $brand)
            {
                $new_arr['name'] = 'luna';
                $new_arr['brand'] = $brand;
                $list[]=$new_arr;
            }
        }
    }
}

但是我无法得到我想要的结果。

这里有一个解决方案,可以让你把名字和品牌结合起来

$json = '[
    {"name": "rizal",  "brand": "LENOVO"},
    {"name": "luna",   "brand": "IPHONE"}
]';

$brands = ['LENOVO', 'IPHONE', 'SAMSUNG'];

$list = json_decode( $json, true );
$names = array_column( $list, 'name');

$combination = [];

foreach ($names as $name) {
    foreach ($brands as $brand ) {
        $combination [] = [ "name" => $name, "brand" => $brand ]; 
    }
}

$encoded = json_encode( $combination );
var_dump($encoded);

如果您只需要名称和品牌的所有组合,您可以从数据库中获取唯一的名称,然后将其与品牌组合。