2015-11-20 2 views
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) 

) 

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

How to get unique value in multidimensional array

$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? –

+0

@FranzGleichmann Select Distinct хочет работать, потому что его цикл. Спасибо – labu77

ответ

0

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

+0

Отличный хочу работать, потому что его цикл, но ваш SORT_REGULAR в порядке :) спасибо – labu77

Смежные вопросы