Arrays 如何在Laravel控制器中合并两个对象数组?
我有这些函数来调用数据集,这些数据集对数据A使用DB query,对数据B使用CURL 现在我设法显示了输出,但不知何故数据A无法合并到数据B中。我的代码如下 名称空间: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."' ";
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代码更新。对不起,注意到了。非常感谢:)注意到。非常感谢:)