共计 1773 个字符,预计需要花费 5 分钟才能阅读完成。
日常开发过程中,经常会设计到 数组 的操作,无论是数据库查询还是数据的导入,难免都会使用到,这里将作自己在这过程中的所用所想做一个记录。
去重
比如我们在一组用户数据中,想知道一共有多少 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’]] = appindexmodelFinancialInData::where(‘financial_item’,$vauel[‘financial_item_name’])->where(‘financial_data’,$searchData)->select();
$list[$vauel[‘financial_item_name’]] = (new thinkCollection($list[$vauel[‘financial_item_name’]]))->toArray();
|
$list[$vauel[‘financial_item_name’]]是任何你查询到的对象,通过 (new thinkCollection($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);
}
}
|
未完待续……
正文完