php找出数组中的重复值

php怎么找出数组中的重复值,比如下面这个数组:

$provinces=["hunan"=>"湖南","hubei"=>"湖北","shanxi"=>"山西","shanxi"=>"陕西"];

陕西山西的拼音是一样的,怎么把它们找出来呢?市县区有挺多拼音一样的,所以想写段代码查找出它们。

慕村9548890
浏览 469回答 10
10回答

斯蒂芬大帝

一个数组不可能存在两个相同的key的,所有改成二维数组,相信你从数据库查出来也是二维数组 <?php $provinces = [ [ 'id' => 1, 'pinyin' => 'hunan', 'name' => '湖南', ], [ 'id' => 2, 'pinyin' => 'hubei', 'name' => '湖北', ], [ 'id' => 3, 'pinyin' => 'shanxi', 'name' => '山西', ], [ 'id' => 4, 'pinyin' => 'shanxi', 'name' => '陕西', ], ]; // 按拼音分组 $groupProvinces = []; foreach ($provinces as $key => $value) { $groupProvinces[$value['pinyin']][] = $value; } // 获取重复的的拼音 $repeats = []; foreach ($groupProvinces as $key => $value) { if (count($value) > 1) { $repeats[$key] = $value; } } echo '<pre>'; echo print_r($repeats); 输出的结果为: Array ( [shanxi] => Array ( [0] => Array ( [id] => 3 [pinyin] => shanxi [name] => 山西 ) [1] => Array ( [id] => 4 [pinyin] => shanxi [name] => 陕西 ) ) )

尚方宝剑之说

你这个数组就不对,一个数组不可能存在两个相同的key的

绝地无双

循环数组找出指定的key值不行吗

慕雪6442864

2楼正确.数组不可能会有这样的.相同的KEY会被后者覆盖掉

繁星coding

将数组元素 反转两次,自动去重 array_reverse

芜湖不芜

先把基础学好吧

慕哥9229398

同意2楼的处理方法

慕的地6264312

先不说key能否重复的问题。为了与山西区分,陕西的拼音通常都是采用:shaanxi
打开App,查看更多内容
随时随地看视频慕课网APP