加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

将多个数组合并为具有唯一值php的数组

发布时间:2020-12-13 21:33:41 所属栏目:PHP教程 来源:网络整理
导读:我知道Stack Overflow上有很多类似的线程,但在我的情况下它们都不起作用. 我的目标是从数据库中获取独特的节目类型.它们在show_genres列中以逗号分隔(1,2,3或更多)存储. $link = mysqli_connect('127.0.0.1','root','pw','db');$query = "SELECT show_genres
我知道Stack Overflow上有很多类似的线程,但在我的情况下它们都不起作用.

我的目标是从数据库中获取独特的节目类型.它们在show_genres列中以逗号分隔(1,2,3或更多)存储.

$link = mysqli_connect('127.0.0.1','root','pw','db');
$query = "SELECT show_genres FROM tv_shows";
$result = mysqli_query($link,$query);
foreach ($result as $value) {
$sh_genres = $value['show_genres'];
$sh_genres_array = array_map('trim',explode(',',$sh_genres));

// $doesnt_work = call_user_func_array("array_merge",$sh_genres_array); // doesn't work for me


echo '<pre>' . var_export($sh_genres_array,true) . '</pre>';
}

我的结果如下:

array (
  0 => 'Drama',1 => 'Action',2 => 'Crime',)
array (
  0 => 'Drama',1 => 'Crime',1 => 'Thriller',)
array (
  0 => 'DIY',1 => 'Mystery',2 => 'Supernatural',)

但是,我只需要一个包含唯一值的数组,例如:

array (
  0 => 'Drama',4 => 'Thriller',5 => 'DIY',6 => 'Crime',7 => 'etc...'

)

如果我尝试在foreach循环之前创建一些数组然后将数据存储到其中,这种方法也不会给出结果.

也许,通过SQL的方法有一个更简单的解决方案!?!?

解决方法

请试试这段代码

在SQL中

$query =“SELECT show_genres FROM tv_shows GROUP BY show_genres”;

在PHP中

$newArray  = array();

foreach ($result as $value) {

  $sh_genres = $value['show_genres'];
  $sh_genres_array = array_map('trim',$sh_genres));

  $newArray = array_merge($newArray,$sh_genres_array );    

}

$newUniqueArray = array_unique($newArray);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读