- ベストアンサー
配列について
配列について $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), ); にする方法を教えてください。
- みんなの回答 (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); ?> 動作確認はしてませんが、問題ないと思います。
その他の回答 (2)
- Bonjin
- ベストアンサー率43% (418/971)
というか重複がダメならば $color = array( "赤" => array(255,0,0), "黄" => array(255,255,0), "緑" => array(0,0,255) ); というような形にした方が良いのでは? 「重複がダメ」というわけではなく「重複を削除したい」なら参考になりませんが・・・
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
重複しているのが既に分かってて、削除するだけなら unset($color[3]); でいいと思います。 点検: var_dump($color);
補足
回答ありがとうございます。説明不足でした。 重複しているのは、不特定多数の場合です。 宜しくお願いします。