2016-11-30 6 views
1

重複するフォームforeachを削除しようとしていますが、機能しません。 私はSQLでこれを行うことができますが、私はPHPを使用する必要があることを知っています。foreachから重複を削除します

マイコード:

<?php foreach($cities as $city):?> 
    <a class="btn" href="$city['url'];?>"> 
     <?= $city['city'];?> 
    </a> 
<?php endforeach;?> 

結果:

> London 
> New York 
> Paris 
> New York 
> Berlin 

私はarray_uniqueと試みたが、それはあまりにも動作しません。

<?php foreach(array_unique($cities) as $city):?> 
    <a class="btn" href="$city['url'];?>"> 
     <?= $city['city'];?> 
    </a> 
<?php endforeach;?> 

どこが間違っていますか?

編集:

Array ( 
[0] => Array ([city] => London [url] => London--UK) 
[1] => Array ([city] => New York [url] => NewYork--USA) 
[2] => Array ([city] => Paris [url] => Paris--France) 
[3] => Array ([city] => New York [url] => NewYork--USA) 
[5] => Array ([city] => Berlin [url] => Berlin--Germany) 
) 
+1

にユーザー投稿による注記で試してみてください作業'?あなたが使用している配列を見ることができますか? –

+0

「結果:」を参照してください。コードは機能しますが、重複した都市を表示します。 – Rubyx

+0

2番目の方法は私にとって完璧に機能します。あなたはそれらが重複していると確信していますか?隠された文字やスペースはありませんか? –

答えて

1

すると、この

<?php 

function unique_multidim_array($array, $key) { 
    $temp_array = array(); 
    $i = 0; 
    $key_array = array(); 

    foreach($array as $val) { 
     if (!in_array($val[$key], $key_array)) { 
      $key_array[$i] = $val[$key]; 
      $temp_array[$i] = $val; 
     } 
     $i++; 
    } 
    return $temp_array; 
} 


?> 

使用

$details = array( 
    0 => array("id"=>"1", "name"=>"Mike", "num"=>""), 
    1 => array("id"=>"2", "name"=>"Carissa", "num"=>"08548596258"), 
    2 => array("id"=>"1", "name"=>"Mathew", "num"=>"784581254"), 
); 

$details = unique_multidim_array($details,'id'); 

ソースは、あなたが「ないとはどういう意味ですかhttp://php.net/manual/es/function.array-unique.php

+0

ありがとうございます! – Rubyx

関連する問題