PHP中高效的多维数组搜索算法实现

时间:2013-09-05 14:25:02

标签: php

我正在寻找一种有效的算法,它允许我在多维数组中搜索特定值。我有这样的事情:

$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的项目。我怎样才能有效地做到这一点?你知道一个比遍历整个阵列更好的算法吗?

2 个答案:

答案 0 :(得分:0)

我认为你应该使用array_multisort()这是有效率的,我个人用它来搜索矩阵中的值。

答案 1 :(得分:0)

您可以使用前面描述的array_multisort(),然后实现二进制搜索算法。我将尝试用seudocode来描述它。

  1. 尝试(子)数组
  2. 的中间位置
  3. 如果项目小于元素重复步骤1在数组的低部分
  4. 如果项目小于元素,则在数组的高位部分重复步骤1