如果你有一个循环填充的数组$ p,如下所示:
$p[] = array( "id"=>$id, "Name"=>$name);
Run Code Online (Sandbox Code Playgroud)
在Name键中搜索John的最快方法是什么,如果找到,返回$ p索引?除了循环$ p之外还有其他方法吗?
我在$ p中有多达5000个名字,而$ p也可能包含5000行.目前我循环遍历$ p查找每个名称,如果找到,解析它(并将其添加到另一个数组),将行拼接出$ p,并打破1,准备开始搜索5000个名称中的下一个.
我想知道是否有更快的方式来获取索引而不是循环通过$ p,例如isset类型的方式?
谢谢你看看伙计们.
好的,我看到这个问题,您有唯一的 ID,但名称可能不是唯一的。
您可以将数组初始化为:
array($id=>$name);
Run Code Online (Sandbox Code Playgroud)
你的搜索可能是这样的:
array_search($name,$arr);
Run Code Online (Sandbox Code Playgroud)
这将非常有效,因为在大海捞针中寻找针的本机方法将比您自己的实现有更好的实现。
例如
$id = 2;
$name= 'Sunny';
$arr = array($id=>$name);
echo array_search($name,$arr);
Run Code Online (Sandbox Code Playgroud)
回声2
这种方法的主要优点是代码可读性。