By looping $users_populated and array_seach function you may obtain the expected result.
<?php
$output = array();
// Case 1: This will overlap by using the last appearance of the same ID value if repeated ID appears in $users_populated
foreach($users_populated as $value) {
if($key = array_search($value['id'], $user_list))
$output[$key] = $value;
}
// Case 2: This will use the first result found in $users_populated
foreach($users_populated as $value) {
if(empty($output[$value['id']]) && $key = array_search($value['id'], $user_list))
$output[$key] = $value;
}
var_dump($output);
Hope this is what you want.