日常开发过程中,经常会设计到数组的操作,无论是数据库查询还是数据的导入,难免都会使用到,这里将作自己在这过程中的所用所想做一个记录。
去重
比如我们在一组用户数据中,想知道一共有多少company_id,则如是操作:
| 1 2 3 4 5 6 7 8 9 | foreach ($data as $value) {             //查看有没有重复项             if (isset($res[$value['company_id']])) {                 //有:销毁                 unset($value['company_id']);             } else {                 $res[$value['company_id']] = $value['company_id'];             }         }; | 
进一步处理,要去掉主键的话,则可以这样:
| 1 | $companyId = array_keys($res); | 
当然,想让他看起来变成3,4,11,用于其他途径的话,可以这样:
| 1 | implode(',',$companyId) | 
以逗号为分隔,转为字符串即可。
对象转数组
如果使用静态方法查询,得到的就是对象,如果操作DB类进行,则得到的是数组,当然你可以在设置中定义查询到的结果类型。
这里以静态方式查询为例,我们查到一个对象后,怎么才能完美的转换为数组呢,只需如下操作:
| 1 2 | $list[$vauel['financial_item_name']] = \app\index\model\FinancialInData::where('financial_item',$vauel['financial_item_name'])->where('financial_data',$searchData)->select(); $list[$vauel['financial_item_name']] = (new \think\Collection($list[$vauel['financial_item_name']]))->toArray(); | 
$list[$vauel[‘financial_item_name’]]是任何你查询到的对象,通过(new \think\Collection($list[$vauel[‘financial_item_name’]]))->toArray()即可转换为数组。
降维
以上方得到的数组$list为例,我们现在要逐一取出或者遍历操作,就需要降维。
| 1 2 3 4 5 6 | foreach($list as $k=>$info){             if(!empty($info)){                 foreach($info as $i){                     dump($i);                 }             } | 
未完待续……
原创文章,作者:蓝洛水深,如若转载,请注明出处:https://blog.lanluo.cn/10517
 
                

 微信扫一扫
                                                            微信扫一扫                                                     支付宝扫一扫
                                                            支付宝扫一扫                                                     
             
             
            