php数组转换为字符串查询数据 记录学习

本文介绍了一种在PHP中高效处理跨数据库表查询的方法。通过示例演示了如何使用for循环和foreach遍历获取的数据,进而针对每个结果进行二次查询,最终整合成所需的数据结构。此外,还提供了一种使用IN子句批量查询的替代方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在我们日常使用php进行数据CRUD时,一定会遇到根据数据库的某字段查询另外一个数据库中的信息,但是当我们根据需求拿到第一个数据库中的某个字段时有多个值的时候,如何将多个值分别查询出我们最终想要的信息,最后整合到一个数组中,这就有点难度了 (可能描述的有点不清晰)
来看demo:
在这里插入图片描述

需求:根据uid的值去查找数据库,把uid为-8363903349918055112 的gonghao字段拿出来,然后根据gonghao这个字段去获取另一个表中的信息
sql语句:

$model = D('yuangongdangan');
$uid = I('get.uid');
$datalistarr=$del->where("uid=%s",$uid)->field('gonghao')->select();

这时我们拿到的$datalistarr返回的结果为:

[{"gonghao":"50"},{"gonghao":"375"},{"gonghao":"503"}]

根据以上的返回结果我们肯定是拿不到我们另一个数据库中的相关信息
实现效果的多种方式:(这里就是直接上代码了,就不多哔哔了,详细的注释请看代码)
方式一:

  //我们根据for循环分别拿到gonghao字段的值,然后根据这个值去查询我们的第二个数据库
  $count = count($datalistarr);
     for($i=0;$i<$count;$i++){
        $data[] = $model->where("gonghao=%s",$datalistarr[$i])->order("id desc")->find();
         //注意,这里要使用find()而不是select ,select的话返回的是一个二维数组,导致我们数据达不到预期效果
     }
     $jsonarr = $data;

方拾二:

    $data = array();
     foreach ($datalistarr as $value) {
       $data[] = $value['gonghao'];
     }
     $gonghaostr=implode(",",$data); //将数组转换为用逗号分隔的字符串
     $wow =  $model->where("gonghao in(%s)",$gonghaostr)->order("id desc")->select();//分别查询字符串中的数据

ok,以上两种方式都可以实现我需要的效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安东尼肉店

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值