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

高效多维数组搜索算法的PHP实现,php,Php,我正在寻找一种高效的算法,它允许我在多维数组中搜索特定的值。我有这样的想法: $stuff = array( array( 'id' => 'abc123', 'name' => 'test' 'contents' => 'Lorem ipsum' ), array( 'id' => 'abc123', 'name' => 'test' 'cont

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

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

我认为你应该使用它,因为它是最有效的,我个人使用它来搜索矩阵中的值。

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

  • 在(子)数组
  • 的中间尝试
  • 如果项目小于元素,则在数组的下部重复步骤1
  • 如果项目小于元素,则在数组的高位重复步骤1

  • 首先想到的是使用
    array\u filter
    和一个检查您要查找的id值的函数…id不是顺序的。我想它们是唯一的,是字符串,可以排序。