tp5.1 php 记录集foreach for循环array_merge函数合拼、array_column函数组装成一维数组array[1,2,45]

264 篇文章 5 订阅

结果1:array[1,2,45]

一、循环记录方法

代码:

    		$rs = Db::name('register')
    		->alias('r')
    		->field('r.id,r.user_id')
    		->join('register_class c','r.class_id = c.id')//模块
    		->where('r.deleted',0)
    		->where('c.deleted',0)
    		->select();
    		if(count($rs)>0){
    			$useridarr = [];
    			foreach($rs as $key => $v){
    				$useridarr[]=$v['user_id'];
    			}
    		}

$useridarr[]=$v['user_id'];

结果2:array[{id:1,titl:标题1},{id:2,titl:标题2}]

foreach($cidarr as $cid){
    $rs4=Db::name('xx')->field('id,title')->where('deleted',0)->select();
    if(count($rs4)>0){
    		foreach($rs4 as $k=> $v4){
    			$uidarr[] = $v4['id'];
    											
    			$arr['id'] = $v4['id'];
    			$arr['title'] = $v4['title'];
    			$uidtitlearr[] = $arr;
    		}
    }
}

$uidarr输出:array[1,2,45]

$uidtitlearr输出:array[{id:1,titl:标题1},{id:2,titl:标题2}]

二、php内置函数实现

    		$rs = Db::name('register')
    		->alias('r')
    		->field('r.id,r.user_id')
    		->join('register_class c','r.class_id = c.id')//模块
    		->where('r.deleted',0)
    		->where('c.deleted',0)
    		->select();
    		if(count($rs)>0){
//		    			foreach($rs as $key => $v1){
//		    				$useridarr[]=$v1['user_id'];
//		    			}
    			$useridarr = array_column($rs,'user_id');
    		}

$useridarr = array_column($rs,'user_id');

array_column($rs,'user_id'):从记录中取得user_id的值组成数组

其它例子:

$useridarr = []; 在开始前一定要设置这个

    	if(count($cidarr)){
    		$useridarr = [];
    		foreach($cidarr as $k => $cid){
    			//dump($cid);
		    		$rs = Db::name('register')
		    		->alias('r')
		    		->field('r.id,r.user_id')
		    		->join('register_class c','r.class_id = c.id')//模块
		    		->where('r.class_id',$cid)
		    		->where('r.deleted',0)
		    		->where('r.state_copy',0)
		    		->where('c.deleted',0)
		    		->select();
		    		if(count($rs)>0){
//		    			foreach($rs as $key => $v1){
//		    				$useridarr[]=$v1['user_id'];
//		    			}
		    			$useridarr = array_merge($useridarr,array_column($rs,'user_id'));
		    		}
		    		//dump($useridarr);
    		}
    		//dump($useridarr);
    		$useridarr = array_values(array_unique($useridarr));
    		
    	}

$useridarr = array_merge($useridarr,array_column($rs,'user_id'));  

array_column($rs,'user_id'):从记录中取得user_id的值组成数组

array_merge($useridarr,array_column($rs,'user_id')):合拼数组($useridarr)

php数组合并 要保持两个数组的键名都不变

https://blog.csdn.net/haibo0668/article/details/118421962

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值