如何将超过1条记录保存到数组中

时间:2017-12-18 09:08:48

标签: php arrays

我有一个 for loop ,它是这样的:

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 + $sender_msg;
    }else{
        $key1 = array_search($sender_id, $sender_ids); // continue
    }
}

我所做的就是获取有关发件人的一些信息,并将它们存储在名为sender_ids[]sender_infos[]的两个独立数组中。

但正如您在代码中所看到的,我已经评论过这一行:

// $sender_infos = $sender_id + $sender_fname + $sender_lname + $sender_msg + $sender_msg;

基本上我想在$sender_infos[]数组中存储多个索引,但我不知道如何做到这一点......

所以,如果你知道怎么做,请告诉我。

2 个答案:

答案 0 :(得分:4)

为sender_infos创建另一个数组

$sender_infos[] = [$sender_id,$sender_fname,$sender_lname,$sender_msg];

您将能够访问$sender_infos[0]

等信息

或关联的数组

$sender_infos[] = ['sender_id'=>$sender_id,'sender_fname'=>$sender_fname,'sender_lname'=>$sender_lname,'sender_msg'=>$sender_msg];

您将能够访问$sender_infos["sender_id"]

等信息

答案 1 :(得分:4)

无需使用for()循环而是使用foreach()循环,并在循环外声明$sender_ids$sender_infos,您应声明并使用{{1作为一个数组,像这样:

$sender_infos

或者使用$sender_infos = []; $sender_ids = []; foreach($updateArray["result"] as $message){ $sender_id = $message["message"]["from"]["id"]; $sender_fname = $message["message"]["from"]["first_name"]; $sender_lname = $message["message"]["from"]["last_name"]; $sender_uname = $message["message"]["from"]["username"]; $sender_msg = $message["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{ $key1 = array_search($sender_id, $sender_ids); // continue } } 作为关联数组:

$sender_infos