在一个独特的多维数组中推送许多数组

时间:2016-06-23 11:54:24

标签: php arrays multidimensional-array

从特定查询中我恢复了一个包含例如User class属性的多维数组。

用户条目数(用户数组查询结果中的用户数)是动态的。对于特定脚本,我需要恢复有关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 ...
     *
     **/
}

现在我需要将所有$userArray放入$finalArray,但$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

的格式创建此数组

2 个答案:

答案 0 :(得分:3)

使用单个数组$finalArray来获取所需的多维数组就足够了:

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

答案 1 :(得分:1)

创建$userArray后,您只需将其添加到$fianlArray作为新条目,如下所示:

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