http://php.net/manual/zh/function.array-search.php 允许我根据数组值查找第一个数组键。
如果该值嵌套在数组值中的对象中,是否可以使用单个PHP函数来完成此操作,或者必须像下面所示手动执行?
谢谢
<?php
function getKeyBasedOnName($arr,$name)
{
foreach($arr as $key=>$o) {
if($o->name==$name) return $key;
}
return false;
}
$json='[
{
"name": "zero",
"data": [107, 31, 635, 203, 2]
},
{
"name": "one",
"data": [133, 156, 947, 408, 6]
},
{"name": "two",
"data": [1052, 954, 4250, 740, 38]
}
]';
$arr=json_decode($json);
var_dump(getKeyBasedOnName($arr,'zero')); //Return 0
var_dump(getKeyBasedOnName($arr,'one')); //Return 1
var_dump(getKeyBasedOnName($arr,'two')); //Return 2
var_dump(getKeyBasedOnName($arr,'three')); //Return false
name
未设置,那么会抛出一个通知。也许可以修改你的if语句为if ( property_exists($o, 'name') && $o->name == $name) {...
。 - random_user_namearray_filter
?因为要使用“外部值”,所以必须将其放入类中并包装在函数中,所以最终代码可能与您的代码一样冗长。另外,最近我在使用Javascript / Angular时发现了lodash库,发现它非常有用,我经常感叹没有更好的工具。考虑使用此库,该库将许多超级有用的函数移植到php中。 - random_user_namenull
。 - user1032531