【问题标题】:Unique Array by Value按值排列的唯一数组
【发布时间】:2015-11-20 10:52:26
【问题描述】:
$email_users[] = $row;

print_r($email_users);

结果:

Array ( 

[0] => Array ( 
[user_id] => 87436 
[username] => Admin 
[user_email] => email@online.us 
[user_lang] => de 
[allowed] => 1 ) 

[1] => Array ( 
[user_id] => 68013 
[username] => Testuser 
[user_email] => email2@online.us 
[user_lang] => de 
[allowed] => 1 ) 

[2] => Array ( 
[user_id] => 68013 
[username] => Testuser 
[user_email] => email2@online.us 
[user_lang] => de 
[allowed] => 1 ) 

)

如您所见,user_id 68013 是双倍的。我必须删除双数组。 结果应如下所示

Array ( 

[0] => Array ( 
[user_id] => 87436 
[username] => Admin 
[user_email] => email@online.us 
[user_lang] => de 
[allowed] => 1 ) 

[1] => Array ( 
[user_id] => 68013 
[username] => Testuser 
[user_email] => email2@online.us 
[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 )

感谢您的宝贵时间。

【问题讨论】:

  • array_unique($your_array,SORT_REGULAR).
  • 我猜您是从 SQL 查询中获取数据的 - 您可以发布该查询吗?您尝试过 SELECT DISTINCT 吗?
  • @FranzGleichmann Select Distinct 想要工作,因为它是一个循环。谢谢
  • @Uchiha 你能给我一个更好的例子吗?谢谢
  • 只需使用 print_r(array_unique($email_users,SORT_REGULAR)); 从您获取此数组的位置

标签: php arrays


【解决方案1】:

您应该从查询中获得不同的价值。使用 SELECT DISTINCT * FROM tablename ,您将获得 Distinct 值。 或者使用 $email_users= array_unique($email_users, SORT_REGULAR);

【讨论】:

  • 不同的想要工作,因为它是一个循环,但你的 SORT_REGULAR 很好:) 谢谢
猜你喜欢
  • 1970-01-01
  • 2021-12-27
  • 1970-01-01
  • 2014-07-25
  • 2013-07-08
  • 2021-12-08
  • 1970-01-01
  • 1970-01-01
  • 2016-03-13
相关资源
最近更新 更多