dポイントプレゼントキャンペーン実施中!

配列について

$color = array(
array('赤', 255, 0, 0),
array('黄', 255, 255, 0),
array('緑', 0, 255, 0),
array('赤', 255, 0, 0),
);

重複している赤を削除して、

$color = array(
array('赤', 255, 0, 0),
array('黄', 255, 255, 0),
array('緑', 0, 255, 0),
);

にする方法を教えてください。

A 回答 (3件)

<pre><?



// こんな感じですかね

$color = array(
array('赤', 255, 0, 0),
array('黄', 255, 255, 0),
array('緑', 0, 255, 0),
array('赤', 255, 0, 0)
);

// キーが変更されてもよいのであれば
foreach($color as $c) $new_color[$c[0]] = $c;

print_r($new_color);
unset($new_color);

?>



<?

$new_color = array();
// キーは同じままがいいのであれば
foreach($color as $c){
if(!in_array($c,$new_color)) $new_color[] = $c;
}

print_r($new_color);

?>

動作確認はしてませんが、問題ないと思います。
    • good
    • 0

というか重複がダメならば


$color = array(
"赤" => array(255,0,0),
"黄" => array(255,255,0),
"緑" => array(0,0,255)
);
というような形にした方が良いのでは?

「重複がダメ」というわけではなく「重複を削除したい」なら参考になりませんが・・・
    • good
    • 0

重複しているのが既に分かってて、削除するだけなら



unset($color[3]);

でいいと思います。
点検:
var_dump($color);

この回答への補足

回答ありがとうございます。説明不足でした。

重複しているのは、不特定多数の場合です。

宜しくお願いします。

補足日時:2005/08/06 15:56
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!