2012-01-19 6 views
5

に重複値を持つ配列から要素を削除私はこのような配列がある場合:PHP - 指定したキー

Array (
    [0]=> 
    Array (
    ["id"]=> "1" 
    ["desc"]=> "desc 1" 
    ["type"]=> "T" 
    ["date"]=> "17-JAN-12" 
) 
    [1]=> 
    Array (
    ["id"]=> "2" 
    ["desc"]=> "desc 2" 
    ["type"]=> "P" 
    ["date"]=> "05-JAN-12" 
) 
    [2]=> 
    Array (
    ["id"]=> "1" 
    ["desc"]=> "desc 3" 
    ["type"]=> "P" 
    ["date"]=> "15-JAN-12" 
) 
    [3]=> 
    Array (
    ["id"]=> "3" 
    ["desc"]=> "desc 4" 
    ["type"]=> "P" 
    ["date"]=> "06-JAN-12" 
) 
    [4]=> 
    Array (
    ["id"]=> "2" 
    ["desc"]=> "desc 5" 
    ["type"]=> "T" 
    ["date"]=> "06-JAN-12" 
) 
) 

を、私はそれからの唯一のキーに値を重複した要素を削除したいです」 ID」、 およびget:

Array (
    [0]=> 
    Array (
    ["id"]=> "1" 
    ["desc"]=> "desc 1" 
    ["type"]=> "T" 
    ["date"]=> "17-JAN-12" 
) 
    [1]=> 
    Array (
    ["id"]=> "2" 
    ["desc"]=> "desc 2" 
    ["type"]=> "P" 
    ["date"]=> "05-JAN-12" 
) 
    [2]=> 
    Array (
    ["id"]=> "3" 
    ["desc"]=> "desc 4" 
    ["type"]=> "P" 
    ["date"]=> "06-JAN-12" 
) 
) 

感謝。

+2

この作業はそれほど難しくありません。何か試しましたか? –

+0

重複をどのように処理したいですか?最初に選ぶ?平均?和?カウント? – J0HN

+2

あなたはどの要素を複製するのですか?最初の –

答えて

6
$result = array(); 
foreach($array as $arr){ 
    if(!isset($result[$arr["id"]])){ 
     $result[$arr["id"]] = $arr; 
    } 
} 
2

と思われますが、そのidプライマリキーです。配列をループし、idがまだ存在しない場合にのみ要素を新しい配列に挿入します。ところで

$new_array = array(); 
foreach ($old_array as $entry) { 
    if (empty($new_array[$entry['id']])) $new_array[$entry['id']] = $entry; 
} 
$new_array = array_values($new_array); 

。最後の行は、最終配列のキーを並べ替えるためのものです。

関連する問題