Уникальный массив по значению

1
$email_users[] = $row;

print_r($email_users);

Результат:

Array ( 

[0] => Array ( 
[user_id] => 87436 
[username] => Admin 
[user_email] => [email protected] 
[user_lang] => de 
[allowed] => 1 ) 

[1] => Array ( 
[user_id] => 68013 
[username] => Testuser 
[user_email] => [email protected] 
[user_lang] => de 
[allowed] => 1 ) 

[2] => Array ( 
[user_id] => 68013 
[username] => Testuser 
[user_email] => [email protected] 
[user_lang] => de 
[allowed] => 1 ) 

)

Как вы можете видеть, user_id 68013 двойной. Мне нужно удалить двойной массив. Результат должен выглядеть так:

Array ( 

[0] => Array ( 
[user_id] => 87436 
[username] => Admin 
[user_email] => [email protected] 
[user_lang] => de 
[allowed] => 1 ) 

[1] => Array ( 
[user_id] => 68013 
[username] => Testuser 
[user_email] => [email protected] 
[user_lang] => de 
[allowed] => 1 ) 

)

Я прочитал и попробовал несколько решений, которые я нашел в стеке. Например:

Как получить уникальное значение в многомерном массиве

$email_users[] = $row;

$user_ids = array();
foreach ($email_users as $h) {
$user_ids[] = $h['user_id'];
}
$email_users = array_unique($user_ids);

print_r($email_users);

Но print_r только:

Array ( [0] => 87436 [1] => 68013 )

Спасибо за ваше время.

  • 0
    array_unique($your_array,SORT_REGULAR) .
  • 1
    Я полагаю, что вы получаете данные из SQL-запроса - можете ли вы опубликовать этот запрос, и вы пробовали SELECT DISTINCT?
Показать ещё 6 комментариев
Теги:
arrays

1 ответ

0
Лучший ответ

Вы должны получить отличное значение из своего запроса. Используйте SELECT DISTINCT * FROM tablename, и вы получите значение Distinct. Или используйте $ email_users = array_unique ($ email_users, SORT_REGULAR);

  • 0
    Я хочу работать, потому что это цикл, но ваш SORT_REGULAR в порядке :) спасибо

Ещё вопросы

Сообщество Overcoder
Наверх
Меню