【发布时间】:2020-09-30 12:54:36
【问题描述】:
我正在使用 PHP 将 JSON 元素添加到数组中。
这是我的数据库表:
这是我的 json 数组:
array:8 [
0 => {#305
+"Queue": "755"
+"Location": "427"
+"MemberName": "PJSIP/427"
+"Status": "5"
}
1 => {#306
+"Queue": "752"
+"Location": "427"
+"MemberName": "PJSIP/427"
+"Status": "5"
}
2 => {#304
+"Queue": "750"
+"Location": "427"
+"MemberName": "PJSIP/427"
+"Status": "5"
}
]
现在我想将 callQueueName 添加到每个 json 对象。尝试使用 put 函数,如下代码所示,但未添加。
这是我的工作代码:
public static function getLoginAgentInfoTest(){
$loginAgentInfo =
'[{"Queue":"755","Location":"427","MemberName":"PJSIP\/427","Status":"5"},
{"Queue":"752","Location":"427","MemberName":"PJSIP\/427","Status":"5"},
{"Queue":"750","Location":"427","MemberName":"PJSIP\/427","Status":"5"}]';
$loginAgentInfo = json_decode($loginAgentInfo);
$i = 0;
foreach($loginAgentInfo[$i] as $loginData){
$callQueueName = Tbcdrqueues::where('callqueue_no',$loginAgentInfo[$i]->Queue)->value('callqueue_name');
$loginAgentInfo[$i].put('callQueueName',$callQueueName);
$i++;
}
return $loginAgentInfo;
}
预期输出是:
array:8 [
0 => {#305
+"Queue": "755"
+"Location": "427"
+"MemberName": "PJSIP/427"
+"Status": "5"
+"callQueueName" : "New claims"
}
1 => {#306
+"Queue": "752"
+"Location": "427"
+"MemberName": "PJSIP/427"
+"Status": "5"
+"callQueueName" : "Billing"
}
2 => {#304
+"Queue": "750"
+"Location": "427"
+"MemberName": "PJSIP/427"
+"Status": "5"
+"callQueueName" : "Customer_Service"
}
]
我怎样才能做到这一点?
【问题讨论】:
-
看起来你这里只有一个普通数组,那么
$loginAgentInfo[$i].put(…)到底应该是什么? -
顺便说一句,这是我见过的用
foreach循环数组的最奇怪的方法之一。 -
是的,您的问题出在
put(...)部分,您应该尝试: $loginAgentInfo[$i]['callQueueName'] = $callQueueName; //或者看看array_push()函数它应该可以工作。
标签: php laravel laravel-5 eloquent