以二维数组中的相同值为键,重新整理数组

namesex
小红
小明
小草
小梁

 

库表里有这样的数据,我打算把sex相同的整理成一个数组,然后我就开始查怎么用sql语句直接查出来,知道我看到了这段话

https://www.cnblogs.com/zhuiluoyu/p/6862673.html

我就放弃了,决定打算查出来然后对数组进行处理,看到了这篇问答https://zhidao.baidu.com/question/134979377833744885.html

这个解释里边是处理的数组要比我处理的数组维度高,所以我要自己改一下

 

这是处理之前的数组格式

array(
    array(
        'name'=>'小红',
        'sex'=>'女'
    ),
    array(
        'name'=>'小明',
        'sex'=>'男'
    ),
    array(
        'name'=>'小草',
        'sex'=>'女'
    ),
    array(
        'name'=>'小梁',
        'sex'=>'男'
    ),
)

接下来上代码

$re = [];
foreach($res as $r) {
        $tr = $r;
        unset($tr['sex']);
        if(isset($re[$r['sex']])) {
            $re[$r['sex']][] = $tr;
        }else{
            $re[$r['sex']] = array($tr);
        }
}
var_export($re);

转化之后的结果是这样的

array (
    '0' =>
        array (
            array (
                'name' => '小明'
            ),
            array (
                'name' => '小梁'
            ),
        ),
    '1' =>
        array (
            array (
                'name' => '小红'
            ),
            array (
                'name' => '小草'
            ),
        ),
    )

这是我在正式项目上改出来的,可能数组的组装上会有一些偏差,但是效果达到了呀

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值