Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-向数组中的每个json对象动态添加元素_Php_Laravel_Laravel 5_Eloquent - Fatal编程技术网

PHP-向数组中的每个json对象动态添加元素

PHP-向数组中的每个json对象动态添加元素,php,laravel,laravel-5,eloquent,Php,Laravel,Laravel 5,Eloquent,我使用PHP将JSON元素添加到数组中 这是我的数据库表: 这是我的json数组: array:8 [ 0 => {#305 +"Queue": "755" +"Location": "427" +"MemberName": "PJSIP/427" +"Status": "5" } 1

我使用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"
  }
]
现在我想向每个json对象添加callQueueName。尝试使用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()函数,它应该可以工作。虽然这段代码可以回答这个问题,但最好解释一下实际的变化以及为什么它可以工作。
foreach($loginAgentInfo as $key => $loginData){ 
     $callQueueName = Tbcdrqueues::where('callqueue_no',$loginData->Queue)->value('callqueue_name');
     $loginAgentInfo[$key]->callQueueName = $callQueueName;
}