- ベストアンサー
PHP多次元配列で重複チェック
現在重複チェックのプログラムを制作中です。 各配列には400文字程度の文章で、75個あります。 条件文でのチェックを行うと通り数で2800通りになるので array_count_values 関数 を使おうと思っているのですが 多次元配列にして、ラベル(bunsyou1~bunsyou75)と文章を一組にして、 ラベルで重複箇所を結果として出す方法は在りますでしょうか? ご教示いただければ幸いです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
まず、例示の命題は多次元ではないですよね? あとは、前回書いたとおりソートしてしまえば、前後2項目の 比較を繰り返すだけです。 <? $bunsyoulist = array( "bunsyou1" => "xxx" ,"bunsyou2" => "aaa" , "bunsyou3" => "bbb" , "bunsyou4" => "xxx" , "bunsyou5" => "ccc" , "bunsyou6" => "xxx" , "bunsyou7" => "aaa" , "bunsyou8" => "xxx" ); asort($bunsyoulist); $preval=""; $prekey=""; foreach ($bunsyoulist as $key =>$val){ if($preval==$val){print $prekey." = ".$key."<br>";} $preval=$val; $prekey=$key; } ?>
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
多次元配列のくだりがよくわからないです。 具体的にどういう構造を想定しているのでしょうか? またチェックしたいとのことですが、チェックしたあとどうしたいのでしょうか? 処理がわからなければなんとも回答のしようもないかと。 まぁやり方によりますが、ソートと絡めれば、チェックははやそうですね
補足
ご解答ありがとうございます。 構造に関して詳細を記させていただきます。 bunsyou1~bunsyou75の配列が以下のようにあります。 -- $bunsyoulisit = array(bunsyou1 => "(400文字程度のテキストA)", bunsyou2 => "(400文字程度のテキストB)", bunsyou3 => "(400文字程度のテキストA)", bunsyou4 => "(400文字程度のテキストC)".........); -- この場合、400文字程度のテキストAが重複しているので、 bunsyou1とbunsyou3の配列が重複していることを、返したいと考えています。 ご教示いただければ幸いでございます。 宜しくお願いいたします。
お礼
解答ありがとうございます。 大変参考になり、解決しました。