ここから本文です

2次元配列の重複削除について

all********さん

2013/11/2922:30:22

2次元配列の重複削除について

以下の様な2次元配列の重複箇所を削除しようといろいろ試しましたが、私の力量だとできませんでした。
---------------------------------
$human[0]['age'] = 17
$human[0]['name'] = "鈴木" ← ここが一緒
$human[0]['sex'] = "男性"

$human[1]['age'] = 23
$human[1]['name'] = "佐藤"
$human[1]['sex'] = "女性"

$human[2]['age'] = 58
$human[2]['name'] = "鈴木" ← ここが一緒
$human[2]['sex'] = "女性"

----------------------------------
このような配列で、同じ 'name' を持つ$human[0]または$human[1]を削除したいと思います。

どのような関数を利用すれば、実現できるでしょうか?
ご存知の方がいらっしゃいましたら、ご教授お願い致します。

補足すみせん。削除したいのは、$human[0] または $human[2]でした。
失礼しました。

閲覧数:
1,357
回答数:
1
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

ryo********さん

編集あり2013/11/2923:10:14

苗字が同じ中から最初に見つけたものを優先して残す仕様にします。
("human"の英単語の使いどころがおかしいので"people"にしますねww)
配列のキーはふり直されずにそのままになるので注意してください。

http://ideone.com/5Ot1kC

$people = array_filter(
____$people,
____function ($person) {
________static $names;
________$ret = !isset($_names[$person['name']]);
________$names[$person['name']] = true;
________return $ret;
____}
);

質問した人からのコメント

2013/11/29 23:18:40

降参 早速ドンピシャな解答をしていただきありがとうございました。
プログラムに組み込んだところうまく動作させることが出来ました。

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる