日常开发过程中,经常会设计到数组的操作,无论是数据库查询还是数据的导入,难免都会使用到,这里将作自己在这过程中的所用所想做一个记录。
去重
比如我们在一组用户数据中,想知道一共有多少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