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);
如果您只需要名称和品牌的所有组合,您可以从数据库中获取唯一的名称,然后将其与品牌组合。