Arrays 如何在Laravel控制器中合并两个对象数组?

Arrays 如何在Laravel控制器中合并两个对象数组?,arrays,laravel,object,merge,controller,Arrays,Laravel,Object,Merge,Controller,我有这些函数来调用数据集,这些数据集对数据A使用DB query,对数据B使用CURL 现在我设法显示了输出,但不知何故数据A无法合并到数据B中。我的代码如下 名称空间: use \stdClass; public function find($user = null) { if($user) { // Data A $sql = "SELECT * FROM TABLE WHERE ID = '".$user."' ";

我有这些函数来调用数据集,这些数据集对数据A使用DB query,对数据B使用CURL

现在我设法显示了输出,但不知何故数据A无法合并到数据B中。我的代码如下

名称空间:

use \stdClass;
public function find($user = null) {
    if($user)
    {
        // Data A
        $sql            = "SELECT * FROM TABLE WHERE ID = '".$user."' "; 
        $arr            = DB::connection('mysql')->select($sql);
        $resultData     = new \stdClass();

        foreach ($arr as $key => $value) 
        {
            $resultData->$key = $value; // Extract Data A table
        }


        // Data B
        $url    = "http://localhost/data/curl.php?value=".$user; 
        $ch     = curl_init();
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_URL,$url);
        $result = curl_exec($ch);
        curl_close($ch);
        $row    = json_decode($result, true); 

        foreach ($row as $key => $value) 
        {
            $resultData->$key = $value; // Extract Data B 
        }  

        dd($resultData);
        return true;
    }
    return false;
}
{#310 
  +"0": "CLERK"
  +"TITLE": "CLERK"
  +"1": "Clerk, IT Department"
  +"POSITION": "Clerk, IT Department"
  +"2": "Rozaimi Bin Zamahri"
  +"SECTION": "Office"
}
代码:

use \stdClass;
public function find($user = null) {
    if($user)
    {
        // Data A
        $sql            = "SELECT * FROM TABLE WHERE ID = '".$user."' "; 
        $arr            = DB::connection('mysql')->select($sql);
        $resultData     = new \stdClass();

        foreach ($arr as $key => $value) 
        {
            $resultData->$key = $value; // Extract Data A table
        }


        // Data B
        $url    = "http://localhost/data/curl.php?value=".$user; 
        $ch     = curl_init();
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_URL,$url);
        $result = curl_exec($ch);
        curl_close($ch);
        $row    = json_decode($result, true); 

        foreach ($row as $key => $value) 
        {
            $resultData->$key = $value; // Extract Data B 
        }  

        dd($resultData);
        return true;
    }
    return false;
}
{#310 
  +"0": "CLERK"
  +"TITLE": "CLERK"
  +"1": "Clerk, IT Department"
  +"POSITION": "Clerk, IT Department"
  +"2": "Rozaimi Bin Zamahri"
  +"SECTION": "Office"
}
我的目标是将这两组数据(A和B)合并为一组

如果我单独显示输出,我现在在浏览器中得到的结果是这样的。当我合并它时,它只显示数据B:

数据A

{#310 
  +"0": {#213 
    +"id": "1"
    +"name": "MIKE"
    +"acc_no": "AAA001"
    +"email": "mike@col.com" 
  }
}
数据B

use \stdClass;
public function find($user = null) {
    if($user)
    {
        // Data A
        $sql            = "SELECT * FROM TABLE WHERE ID = '".$user."' "; 
        $arr            = DB::connection('mysql')->select($sql);
        $resultData     = new \stdClass();

        foreach ($arr as $key => $value) 
        {
            $resultData->$key = $value; // Extract Data A table
        }


        // Data B
        $url    = "http://localhost/data/curl.php?value=".$user; 
        $ch     = curl_init();
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_URL,$url);
        $result = curl_exec($ch);
        curl_close($ch);
        $row    = json_decode($result, true); 

        foreach ($row as $key => $value) 
        {
            $resultData->$key = $value; // Extract Data B 
        }  

        dd($resultData);
        return true;
    }
    return false;
}
{#310 
  +"0": "CLERK"
  +"TITLE": "CLERK"
  +"1": "Clerk, IT Department"
  +"POSITION": "Clerk, IT Department"
  +"2": "Rozaimi Bin Zamahri"
  +"SECTION": "Office"
}

如果有人能帮助我,我将不胜感激。谢谢。

试试这个:-

    $data1=(object)['a','b'];
    $data2=(object)['c','d'];
    $result = (object) array_merge(
        (array) $data1, (array) $data2);

    print_r($result);

试试这个:-

    $data1=(object)['a','b'];
    $data2=(object)['c','d'];
    $result = (object) array_merge(
        (array) $data1, (array) $data2);

    print_r($result);
问题1: 不要只是用params连接sql字符串,它有sql注入问题,如果您想用params使用
DB::select
,您可以这样做:

$sql=“从ID=?”的表中选择*”;
$arr=DB::connection('mysql')->select($sql,[$user]);
问题2: 因为您使用的是DB select方法,所以它将返回一个包含对象的数组嵌套。您需要先获取对象,然后执行以下操作:

$arr=DB::connection('mysql')->选择($sql)[0];
然后,您可以通过循环合并它们,或者将它们转换为数组并合并它们。

问题1: 不要只是用params连接sql字符串,它有sql注入问题,如果您想用params使用
DB::select
,您可以这样做:

$sql=“从ID=?”的表中选择*”;
$arr=DB::connection('mysql')->select($sql,[$user]);
问题2: 因为您使用的是DB select方法,所以它将返回一个包含对象的数组嵌套。您需要先获取对象,然后执行以下操作:

$arr=DB::connection('mysql')->选择($sql)[0];

然后,您可以通过循环合并它们,或者将它们转换为数组并合并它们。

您可以使用+合并两个数组,并保留相同的数字键。例如,$dataC=$dataA+$dataBuse
$resultData
而不是
$adServer
@TsaiKoga代码更新。抱歉。您可以使用+合并两个数组,并保留相同的数字键。例如,$dataC=$dataA+$dataBuse
$resultData
而不是
$adServer
@TsaiKoga代码更新。对不起,注意到了。非常感谢:)注意到。非常感谢:)