2016-06-23 9 views
1

特定のクエリから、たとえばUserクラスのプロパティを含む多次元配列を復元します。複数の配列を1つの一意の多次元配列にプッシュ

ユーザエントリ数(ユーザのユーザ配列クエリ結果の数)は、duynamicです。特定のスクリプトについては、Userに関するこの配列の特定の値を回復する必要があります。たとえば、メールアドレス、ユーザー名、電話番号など... しかし、すべての値を回復する必要はありません。

だから仕様以下、私はこのようなforeachループを作成します。

$finalArray = array(); // my final multi array containing all specific User data I sortin the foreach loop 
$userArray = array(); // define an empty array to push unique user data I need 
foreach ($users as $user) { 
    $userArray['email'] = $user->getEmail(); 
    $userArray['username'] = $user->getUserName(); 
    /* 
    * etc ... 
    * 
    **/ 
} 

は今、私は私の$finalArrayにすべての$userArrayを配置する必要がありますが、このようなmultidiemensionnal配列であることを$finalArrayがあります

var-dump($finalArray); 

/** have to return a multi dim array like this **/ 

array (size=2) 
    0 => /** user one **/ 
     array (size=5) 
      0 => string 'user1 email' 
      1 => string 'user1 username' 
    1 => /** user 2 **/ 
     array (size=5) 
      0 => string 'user2 email' 
      1 => string 'user2 username' 
    2 => /** user 3 **/ 
     array (size=5) 
      0 => string 'user3 email' 
      1 => string 'user3 username' 
    3 => /** user 4 
      etc ... 
    **/ 

$userArrayをすべて含むこのフォーマットでこのアレイを作成するにはどうすればよいですか?

答えて

1

あなたはちょうどこのような新しいエントリとして$fianlArrayにそれを追加する必要が$userArray作成した後:

$finalArray = array(); // my final multi array containing all specific User data I sortin the foreach loop 

foreach ($users as $user) { 
    $userArray = array(); // define an empty array to push unique user data I need 
    $userArray['email'] = $user->getEmail(); 
    $userArray['username'] = $user->getUserName(); 
    /* 
    * etc ... 
    * 
    **/ 

    //Add userArray as a new entry in finalArray. 
    $finalArray[] = $userArray; 
} 
+2

@ChetanAmetaはい、フィールドがユーザーごとに異なる場合は、配列を空にするたびにリセットする方がよいでしょう。私はループで動いた。ありがとう –

+0

私の質問は愚かなので、答えはとてもシンプルな、新人の質問(申し訳ありません)、私は多くのことをテストしているようですが、私はforeachループにこの行を追加するとは思わない!ありがとう、あなたは私の日を救って、私はいくつかのコードを書いたとき、私はもっと集中する必要があることを認識しています。 –

3

必要な多次元配列を取得するために、単一のアレイ$finalArrayを使用するのに十分だろう。

$finalArray = []; 
foreach ($users as $user) { 
    $finalArray[] = ['email' => $user->getEmail(), 'username' => $user->getUserName()]; 
    /** 
    * etc ... 
    **/ 
} 
+0

あなたの答えは良いです。しかし、私は最初の書面による応答を検証しました。個人的には受け取りません。別のスタックユーザーがあなたより速いからです。しかし、時間をかけて投稿を書いて、この質問が本当に新人だから自分に集中する必要があることに気づくのを助けてくれてありがとう。 –

+0

@french_dev、それは問題ありません – RomanPerekhrest