• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

如何将记录添加到先前定义的数组

php 来源:wrephebiajou 5次浏览

我有一个是这样的一个数组:如何将记录添加到先前定义的数组

 Array 
(
    [0] => Array 
     (
      [0] => 108132368 
      [1] => Pouya 
      [2] => Vaghefi 
      [3] => Hi 
     ) 

    [1] => Array 
     (
      [0] => How r u 
     ) 

    [2] => Array 
     (
      [0] => 101524007 
      [1] => Pega 
      [2] => 
      [3] => /start 
     ) 

    [3] => Array 
     (
      [0] => OKAY 
     ) 

    [4] => Array 
     (
      [0] => Hello? 
     ) 
    ) 

背后的代码使这个放在这里:

$sender_ids = array(); 
$sender_infos = array(); 
for($i=0;$i<$num;$i++){ 
    $sender_id = $updateArray["result"][$i]["message"]["from"]["id"]; 
    $sender_fname = $updateArray["result"][$i]["message"]["from"]["first_name"]; 
    $sender_lname = $updateArray["result"][$i]["message"]["from"]["last_name"]; 
    $sender_uname = $updateArray["result"][$i]["message"]["from"]["username"]; 
    $sender_msg = $updateArray["result"][$i]["message"]["text"]; 
    // sender id 
    if(!(in_array($sender_id, $sender_ids))){ 
     $sender_ids[] = $sender_id; 
     $sender_infos[] = [ 
      $sender_id, 
      $sender_fname, 
      $sender_lname, 
      $sender_msg 
     ]; 
    }else{ 
     // $key = array_search($sender_id, $sender_ids); 
     $sender_infos[] = [ 
      $sender_msg 
     ]; 
    } 

现在的问题是与其他声明。基本上,如果sender_id再次重复它只会将sender_msg添加到sender_info

但是我想要做的是将sender_msg添加到之前已经创建好的数组中。事实上,它必须搜索定义的sender_id并将其他消息添加到该消息。

因此,全阵列会是这样:

Array 
(
    [0] => Array 
     (
      [0] => 108132368 
      [1] => Pouya 
      [2] => Vaghefi 
      [3] => Hi 
      [4] => How r u 
      [5] => Hello? 
     ) 

    [2] => Array 
     (
      [0] => 101524007 
      [1] => Pega 
      [2] => 
      [3] => /start 
      [4] => OKAY 
     ) 
    ) 


===========解决方案如下:

您应该使用array_search()而不是in_array(),像这样:

if(false === $key = array_search($sender_id, $sender_ids)){ 
    $sender_ids[] = $sender_id; 
    $sender_infos[] = [ 
     'sender_id' => $sender_id, 
     'sender_fname' => $sender_fname, 
     'sender_lname' => $sender_lname, 
     'sender_msg' => [$sender_msg], 
    ]; 
}else{ 
    $sender_infos[$key]['sender_msg'][] = $sender_msg; 
} 

,然后使用array_search()中的$key将值插入先前生成的索引中。另外,你应该将消息保存为嵌套数组,并将其设置为适当的关联数组。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)