数组相同的值清晰

时间:2014-02-24 14:05:14

标签: php arrays foreach

如果版本相同,我如何清除一个值。 这是我的数组

[1] => Array
              (
              [name] => Peter
              [city] => Texas
)

[2] => Array
              (
              [name] => Hans
              [city] => New York
)

[3] => Array
              (
              [name] => Lex
              [city] => Texas
)

因此,我只能在德克萨斯州一次获得

<ul>
    <?php foreach ($array as $newarray) ?>
    <li><?php echo $newarray['city']; ?></li>
    <?php endforeach; ?>
</ul>

更新

我试着这样把所有的城市放在一个数组中。 ($阵列) 有了print_r我得到了这个。

Array
(
    [0] => Vorarlberg
)
Array
(
    [0] => Niederösterreich
)
Array
(
    [0] => Niederösterreich
)

之后我尝试<?php array_unique($array, SORT_REGULAR); ?><?php echo array_unique($regionen, SORT_REGULAR); ?>我只得到三个“数组”。

最好的问候

3 个答案:

答案 0 :(得分:3)

您可以使用array_unique函数,并且必须添加SORT_REGULAR标志:

$unique_array = array_unique($array, SORT_REGULAR);

示例:

$array  = array(
array("name" => "sundar" , "city" => "madurai"), 
array("name" => "amar" , "city" => "chennai"), 
array("name" => "kumar" , "city" => "madurai"), 
array("name" => "ragu" , "city" => "trichy"), 

);  

foreach ($array as $item) {
    $cityarray[] = $item['city'];
}

 $final_array = array(); 
foreach (array_unique($cityarray) as $key => $city) {

$final_array[] =    $array[$key]; 

}
print_r($final_array); 

答案 1 :(得分:1)

使用一个简单的数组作为哈希表,并使用isset来判断你以前是否经历过这个城市:

<?php
    $cities = array();
    foreach ($array as $newArray) {
        if (!isset($cities[$newArray['city']])) {
            $cities[$newArray['city']] = true;

            echo $newArray['city'];
        }
    }
?>

答案 2 :(得分:1)

像这样使用array_column()array_unique()

foreach (array_unique(array_column($array, 'city')) as $city) {
    // ...
}