PHP中JavaScript findIndex()的等价物
这就是我在JavaScript中从数组中检索项目的方式,它工作正常:PHP中JavaScript findIndex()的等价物,javascript,php,arrays,indexof,Javascript,Php,Arrays,Indexof,这就是我在JavaScript中从数组中检索项目的方式,它工作正常: function getLibItemByName(name){ var index = json.library.findIndex(p => p.name == name); return json.library[index]; } 我的数组如下所示: [ { "name": "item1" }, { "name": "item2"
function getLibItemByName(name){
var index = json.library.findIndex(p => p.name == name);
return json.library[index];
}
我的数组如下所示:
[
{
"name": "item1"
},
{
"name": "item2"
},
...
]
现在我想知道如何在PHP中实现同样的功能
更新:我想出了一个暂时有效的方法
function getLibItemByName($name){
global $json;
foreach($json['library'] as $key => $val){
if($name === $val['name']){
return $json['library'][$key];
}
}
return false;
}
在PHP中,有一个数组函数
array\u serach()
,它匹配值并返回其键。它将搜索值
作为第一个参数,将数组
作为第二个参数
$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');
$key = array_search('green', $array); // $key = 2;
$key = array_search('red', $array); // $key = 1;
使用array_search()函数,其工作原理如下:
数组搜索(什么搜索,数组变量,真/假)
FALSE是默认参数。
如果此参数设置为TRUE,则此函数将在数组中搜索相同的元素。
设置为true时,数字5与字符串5不同
以下是给定的示例:
$a=array("a"=>"5","b"=>5,"c"=>"5");
echo array_search(5,$a,true);
如果在数组中找到值,则返回该值的键,否则返回FALSE。如果在数组中多次找到该值,将返回第一个匹配的键。我将提供两个建议
array\u search()
和array\u column()的组合
array (
'name' => 'Chad',
'age' => 7,
)
---
false
---
array (
'name' => 'Eddy',
'age' => 9,
)
你是说
array\u search()
?请设置一个php示例。可能有不止一种方法,这取决于您的数据结构和值,一种方法可能比另一种更好。PHP的结构与Javascript不同,比如关联数组。PHP中没有完全类似findIndex的功能,但是有几个函数可以根据您的用例产生类似的结果,PHP中没有本机函数可以做到这一点。使用array\u filter
然后从结果中抓取第一个键可以实现您想要的功能,但这可能不会根据数组的大小来执行。array\u search
与array\u列
结合使用。
array (
'name' => 'Chad',
'age' => 7,
)
---
false
---
array (
'name' => 'Eddy',
'age' => 9,
)