我有一个 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[]
数组中存储多个索引,但我不知道如何做到这一点......
所以,如果你知道怎么做,请告诉我。
答案 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