您的位置:首页 > 编程语言 > PHP开发

php数组如何根据相同值再分组

2016-12-06 00:00 573 查看
/*
*app 购物车详情接口
* by  hanfei
*
*/

$user_id = $_POST['user_id'];

$sql = "SELECT * FROM  `ecs_cart` where user_id=$user_id";
//$sql = "SELECT * FROM  `ecs_cart` where user_id=3329";

$shop_cart = $GLOBALS['db']->getAll($sql);
//var_dump($shop_cart);exit();

foreach ($shop_cart as $k => $v) {

$sql = "select supplier_id from ecs_goods where goods_id=$v[goods_id]";
$supplier_id = $GLOBALS['db']->getOne($sql);
$sql = "select supplier_name from ecs_supplier where supplier_id=$supplier_id";
$supplier_name = $GLOBALS['db']->getOne($sql);
$shop_cart[$k][supplier_id] = $supplier_id;
$shop_cart[$k][supplier_name] = $supplier_name;

}

$result = array();
foreach($shop_cart as $k=>$v){
$result[$v[supplier_name]][]    =   $v;
}

$response = array(
'code' => 200,
'message' => 'success',
'data' =>$result,
);

$json  = new JSON;
die($json->encode($response));

再写查询购物车接口时,发现数据库购物车表里竟然没有店铺信息 坑比

通过goods_id 查到商品具体信息里的店铺id

再根据店铺id 查到店名 我把店名装进每个购物车商品信息中

接下来麻烦了 怎么根据店名分组 想了一会没想出来

百度一下 发现了一个方法 如下 不错。。。。。。

例:

$arr = array
(
0 => array
(
'initial' => 'A',
'typename' => '奥迪'
),
1 => array
(
'initial' => 'F',
'typename' =>'F1'
),
2 => array
(
'initial' => 'F',
'typename' => 'F2'
)
);
$result = array();
foreach($arr as $k=>$v){
$result[$v['initial']][] = $v;
}

//得到的$result就包括你需要的内容了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  PHP