首页 > 解决方案 > 无法删除php中的重复数组值

问题描述

我知道以前有人问过这个问题,或者我可能找不到与整个网站相关的问题和答案。对于数组中重复值的删除过程,我需要一些建议。这是我的代码:

$newarray = array();
foreach($rows as $item) {
 if (!in_array($rows, $newarray)) {  
     $newarray[$item['country_name']]['cityName'][]  = $item['city_name'];
 }

$newarray[$item['country_name']]['hotelName'][] = $item['hotel_name'];
}
echo '<pre>';
print_r($newarray);
echo '</pre>';

这是我的输出:

Array (
[India] => Array
    (
        [cityName] => Array
            (
                [0] => Gurugram
                [1] => Trivandrum
                [2] => Bengaluru
                [3] => Udaipur
                [4] => Salcette
                [5] => Mumbai
                [6] => New Delhi
                [7] => Chennai
                [8] => Salcette
                [9] => Salcette
                [10] => Bengaluru
                [11] => Chennai
                [12] => New Delhi
                [13] => Udaipur
                [14] => Delhi
                [15] => Jaipur
                [16] => Jaipur
            )

如您所见,返回值中有多个重复值。我需要这样的东西:

Array (
[India] => Array
    (
        [cityName] => Array
            (
                [0] => Gurugram
                [1] => Trivandrum
                [2] => Bengaluru
                [3] => Udaipur
                [4] => Mumbai
                [5] => Chennai
                [6] => Salcette
                [7] => Chennai
                [8] => New Delhi
                [9] => Udaipur
                [10] => Delhi
                [11] => Jaipur

            )

标签: php

解决方案


您可以为此使用array_unique函数

$newarray = array();

foreach($rows as $item) {
   if (!in_array($rows, $newarray)) {  
       $newarray[$item['country_name']]['cityName'][]  = $item['city_name'];
   }

   // because of you array is multidimensional 
   // you can use array_unique function with array_map searching

    $newarray= array_map("unserialize", array_unique(array_map("serialize",$newarray)));

    $newarray[$item['country_name']]['hotelName'][] = $item['hotel_name'];
}

echo '<pre>';
print_r($newarray);
echo '</pre>';

推荐阅读