goods
列 类型 注释
id int(11) 自动增量 主键ID
title varchar(100) 商品名称
price decimal(10,2) 商品价格
cover varchar(100) 商品封面
goods_detail
列 类型 注释
id int(11) 自动增量 主键ID
goods_id int(11) 商品ID
content varchar(5000) 商品图文介绍
$db = new PDO();
$query = $db->query('select from goods');
$result = $query->fetchAll();
$goods_id = array_column($result,'id');
$goods_id_str = implode(',',$goods_id);
$query = $db->query(sprintf('select from goods_detail where goods_id in (%s)',$goods_id_str));
$goods_detail_list = $query->fetchAll();
$goods_detail_list_by_keys = array_column($goods_detail_list,null,'goods_id');
$goods_detail_default = [
'content' => '默认内容',
'id' => null,
'goods_id'=> null,
];
foreach($result as &$item){
$tmp = array_key_exists($goods_detail_list_by_keys,$item['id']) ? $goods_detail_list_by_keys[$item['id']] : [] ;
// php 7.1+
// $tmp = $goods_detail_list_by_keys[$item['id']] ?? [];
$item['goods_detail'] = array_merge($goods_detail_default,$tmp);
}
unset($item);
var_dump($result);
发表评论: