将多个数组合并为具有唯一值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); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |