• ベストアンサー

配列一致(要素順番は違うが内容は同じ)を確認したい

■前提 ・連想配列ではない、普通の配列が2つある ・2つの配列要素数は同一(例えばそれぞれ五つ) ■質問 ・仮に2つの配列要素内容が同じである(但し順番は違う)時、2つの配列要素内容が同じであることを確認するには、どうすればよいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#244856
noname#244856
回答No.3

ちなみに ・連想配列である ・キーと値のペアで考える という前提のもとに ・同等の配列かどうか調べたい(ペアの順番は異なってもいい) この場合はソートも何もせずに $a == $b で調べられます。「===」ではなく「==」です。 http://php.net/manual/ja/language.operators.array.php パフォーマンスは先ほど調べてみましたが、これもスカラー値比較と同じように「==」よりは「===」の方が速いみたいです。

re97
質問者

お礼

「補足」&「リンク提示」&「パフォーマンス調査」、ありがとうございました。 大変参考になりましたー

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

noname#244856
noname#244856
回答No.2

配列 $a, $b が定義されているとする sort($a); sort($b); echo $a === $b ? '同じ' : '違う';

re97
質問者

お礼

回答ありがとうございました。 大変参考になりましたー

全文を見る
すると、全ての回答が全文表示されます。
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

二つの配列をA,Bとして AをソートしたA0と、BをソートしたB0とを先頭から順番に比較して、全部同じだったら同じ。

re97
質問者

お礼

回答ありがとうございました。 参考になりましたー

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 2つの配列要素を比較して、一致しない要素を別配列にしたい

    配列A、配列B、配列C と仮にします。 配列Aから、配列Bと一致しなかった要素の値を配列Cに入れる (一致した分を除外したい) みたいなことをデータベースを使用せずに、Perlで実現したいのですが可能でしょうか?

    • ベストアンサー
    • Perl
  • 配列で、値の入っている要素数を返すには?

    配列abcの長さを取得するには、abc.lengthを使いますよね。 仮にString型の配列abc[20]があったとします。要素数を調べるには、abc.length とすれば、20が返ってきます。 そこで、どこまで、要素が入っているかを調べたい場合、どうするんですか? 例えば、abc[10]まで、要素が入っていて、残りは全部要素が入ってないとします。その時、10を返してくれる、そのようなメソッドはあるんでしょうか? 私がAPIで調べたら、ありませんでした。代表的なアルゴリズムでもいいので、誰か知っている人がいたら教えて下さい。 自分で作ってみたんですが、一般的にはどのようなやり方でやっているのか知りたいので、お願いします。

    • ベストアンサー
    • Java
  • ランキングで似た配列を探す。似ている確率も求めたい

    「要素数が固定の配列」「あるいは先頭から要素を5つぐらいを切り取った配列」で、 「自分と似た配列」を「似ている確率順」で表示させたいのですが、どうすればいいでしょうか? ■似ている ・内容が一致 ・順番も一致? ・一致している数? ・先頭からの要素数が一致している方が優先? 特にこうしたい、という強い希望があるわけではないのですが、「似ている配列」を求めたいとき、どういう方法が考えられるのか知りたく、質問しました

    • ベストアンサー
    • PHP
  • 配列要素の値の入れ替え

    C++の問題で分からないものがあります。 10個の要素を持つ整数型配列を宣言し、for文を使用して各要素に順番に1~10の要素を代入する。次に、関数名RVを使用して配列要素の値を入れ替えにより10~1の順番に並べ替えなさい。各要素への直接入力は行わないこと。 という問題で、1~10までの要素を代入することは出来るのですが、配列要素の入れ替えとはどうやったら良いのでしょうか? 教えていただけませんか?お願いします。

  • Cなどで要素の数が固定できない配列はどうやって実現しますか?

    配列について質問します。 BASIC系では配列は動的配列で要素の数が自由に変えられます。 ですが、C等では宣言時に配列の要素の数を決めておかねばならなかったと思います。 もし、C等で要素の数がわからないけど、配列を使いたい場合、どうすればいいのでしょうか? どのように実現するのでしょうか? 配列と同じ使い勝手なら配列でなくともかまいません。 今はVBAでプログラムを組んでいるので、動的配列を使えばすむのですが、いずれ他の言語に移植したいので、できるだけ使わないようにしたいと思っています。 よろしくお願いいたします。

  • perl 配列の要素数について

    配列の要素数について質問させていただきます。 プログラムの中で、以下のようにファイルの内容を1行ずつ読み込み、配列に入れています。  open (IN, "ファイル名");  @data = <IN>;  close (IN); こういった形で配列に入れていった場合、入れられる最大行数(=最大要素数)はどれくらいになるのでしょうか。 現在100万行のテキストファイルは、問題なく読み込めているようでした。 ご存知の方がおられましたら、ご回答いただければと思います。 よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • 二次元配列における要素数のはじき出し

    普通、配列の要素数を出すとき $num = @list; で良いですよね? ですが、二次元配列で、 $num = @list[1]; って形にするとエラーになります。 どうすればいいのでしょうか?

    • ベストアンサー
    • Perl
  • VB.NET の配列の要素数

    VB.NETで List(Of String()) の多次元配列を宣言したとします。 Listの要素数とListの中のStringの要素数はどのように確認すれば わかるでしょうか? どうぞ、よろしくお願いいたします。

  • 配列の要素数

    配列の要素数を求めるプログラムを作りたいのですが

  • 一致する配列要素数を追加した上、重複を削除したい

    ・配列hogeがある時、idキーの数を数え、count要素として追加したい ・さらに、idキーが重複する内容を削除したい ■前提 hoge (   [0] => Array     (       [id] => 7       [area] => 6     )   [1] => Array     (       [id] => 7       [area] => 6     )   [2] => Array     (       [id] => 8       [area] => 9     ) ) ■欲しい結果 result (   [0] => Array     (       [id] => 7       [area] => 6       [count] => 2     )   [1] => Array     (       [id] => 8       [area] => 9       [count] => 1     ) )

    • ベストアンサー
    • PHP