2017-12-18 7 views
1

私が持っているこのように書きループため配列に1件の以上のレコードを保存する方法

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 
    } 
} 

私は送信者に関するいくつかの情報をつかんで呼ばれる2つの別々の配列に格納したやったすべてのsender_ids[]およびsender_infos[]

しかし、あなたは、コード内で見ることができるように私は、この行コメントしている:

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

は基本的に私はここに$sender_infos[]配列に1つの以上のインデックスを格納したいが、私は、私はそれを行うことができますどのようにしませんが..

これを行う方法がわかっている場合は、教えてください。

+3

foreachを使用しますか? [PHP:foreach](http://php.net/manual/en/control-structures.foreach.php) – Granny

+0

あなたが望む結果の仮説的な配列を表示できますか? – SaidbakR

答えて

4

neはありませんED代わりfor()ループを使用foreach()ループを使用し、ループの外$sender_ids$sender_infosを宣言し、あなたが宣言すると、このように、配列として$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を使用します:

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

あなたが$sender_infos["sender_id"]

のようなに関する情報にアクセスすることができます $sender_infos[0]

または関連配列

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

のようなに関する情報にアクセスすることができますsender_infos

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

のための別の配列を作成します。

関連する問題