初心者で恐縮ですがご教授ください。
$Aの配列を$Bのように、特定のキーの値が同じだった場合(ここでは名前の佐藤)、特定のキーの配列のみをピックアップし(実際には配列内には複数のキー&値があるので削除という形ではなくピックアップする形で実現したいです)、それを一個の配列にまとめ、重複した名前がなければ名前と出身だけピックアップして配列にするという操作がしたいです。
$A= [ ['名前'=>'佐藤','出身'=>'北海道','職業'=>'営業'], ['名前'=>'江本','出身'=>'神奈川','職業'=>'プログラマー'], ['名前'=>'佐藤','出身'=>'新潟','職業'=>'事務'], ['名前'=>'武田','出身'=>'長野','職業'=>'フリーター'] ]
キー名が重複しないようfor文でキーに1,2...と振っています。
$B= [ ['名前'=>'佐藤','出身'=>'北海道', '名前1'=>'佐藤','出身1'=>'新潟'], ['名前'=>'江本','出身'=>'神奈川'], ['名前'=>'武田','出身'=>'長野'] ]
基礎的な知識だけではできず、array_count_valuesなどの関数も検討してみましたが歯が立ちません。よろしくお願いします。
['名前'=>'佐藤','出身'=>'北海道','名前'=>'佐藤','出身'=>'新潟'] のようにキー名が重複していますが、重複できないのでは?
すいません。忘れてました。追加する場合にはfor文で名前1,出身1としています。
このエリアは質問の編集を依頼するものなので回答する際に見られない方もおられるため、質問文を編集されることをお勧めします。
ありがとうございます。
名前1 名前2 にするとかえって扱いにくくないですか? $B= [[['名前'=>'佐藤','出身'=>'北海道'],['名前'=>'佐藤','出身'=>'新潟']],['名前'=>'江本','出身'=>'神奈川'],['名前'=>'武田','出身'=>'長野']] のようにしてみては?
ついでに言うなら $B= [[['名前'=>'佐藤','出身'=>'北海道'],['名前'=>'佐藤','出身'=>'新潟']],[['名前'=>'江本','出身'=>'神奈川']],[['名前'=>'武田','出身'=>'長野']]] のようにするとループで回す時にもっと扱いやすくなると思います。
ありがとうございます。検討します。
回答1件
あなたの回答
tips
プレビュー