Slimshadddyyy
Slimshadddyyy

Reputation: 4073

PHP - Modify an array during foreach loop

public function getUserList($user_id){

        $list_query = "SELECT ACTUAL_USER_ID FROM TABLE WHERE USER_ID = ".$user_id." ";
        $result = parent::queryresult($list_query);
        return $result;
    }


foreach ($result as $uresult){ //$result contains user_id
        $userlist[] = $classObject->getUserList($uresult['USER_ID']);
}

The loop outouts below

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [ACTUAL_USER_ID] => 133
                )

        )

    [1] => Array
        (
            [0] => Array
                (
                    [ACTUAL_USER_ID] => 122
                )

        )

)

How can I remove nested arrays and make it like below

Array
(
    [0] => Array
        (

            [ACTUAL_USER_ID] => 133

        )

    [1] => Array
        (
            [ACTUAL_USER_ID] => 122

        )

)

Upvotes: 1

Views: 210

Answers (2)

Kumar V
Kumar V

Reputation: 8838

Change foreach statement as below

foreach ($result as $uresult){ //$result contains user_id
       $res = $classObject->getUserList($uresult['USER_ID']);
      if(isset($res[0]))
        $userlist[]  = $res[0];
}

Upvotes: 2

Peter
Peter

Reputation: 16923

Use brackets [] to access array's elements

foreach ($result as $uresult){ //$result contains user_id
  $userlist[] = $classObject->getUserList($uresult['USER_ID'])[0];
}

Edit: on different/old version of PHP you need to put array into variable first:

foreach ($result as $uresult){ //$result contains user_id
  $row = $classObject->getUserList($uresult['USER_ID']);
  $userlist[] = $row[0];
}

Upvotes: 3

Related Questions