3

多次元配列で特定の値を検索できる効率的なアルゴリズムを探しています。私はこのようなものを持っています:

$stuff = array(
    array(
        'id' => 'abc123',
        'name' => 'test'
        'contents' => 'Lorem ipsum'
    ),
    array(
        'id' => 'abc123',
        'name' => 'test'
        'contents' => 'Lorem ipsum'
    ),
    array(
        'id' => 'abc123',
        'name' => 'test'
        'contents' => 'Lorem ipsum'
    ),
    array(
        'id' => 'abc43',
        'name' => 'test'
        'contents' => 'Lorem ipsum'
    ),
    array(
        'id' => 'xyzh31',
        'name' => 'test'
        'contents' => 'Lorem ipsum'
    ),
);

ID = abc43 のアイテムを見つけなければなりません。これを効率的に行うにはどうすればよいですか?配列全体をトラバースするよりも優れたアルゴリズムを知っていますか?

4

2 に答える 2

0

前に説明したように array_multisort() を使用してから、二分探索アルゴリズムを実装できます。seudocode で記述してみます。

  1. (サブ)配列の真ん中で試してください
  2. 項目が要素より小さい場合は、配列の下位部分で手順 1 を繰り返します
  3. 項目が要素より小さい場合は、配列の上位部分で手順 1 を繰り返します
于 2013-09-05T15:22:59.470 に答える
0

array_multisort()を使用する必要があると思います。これは可能な限り効率的であり、私は個人的にマトリックス内の値を検索するために使用しています。

于 2013-09-05T14:30:11.363 に答える