php获取具有特定键值的对象的数组索引

我需要测试特定键/值是否存在,然后返回该键/值所属的数组索引,而不必遍历数组的每个元素和/或级别。这可能吗?

 [0: 
     { regional:
          [ 0 :
               {
               ID: 1000
               someInfoA : valueA
               someInfoB : valueB
               }
          ]
          [ 1 :
               {
               ID: 1001
               someInfoA : valueA
               someInfoB : valueB
               }
          ]
          [ 2 :
               {
               ID: 1002
               someInfoA : valueA
               someInfoB : valueB
               }
          ]
          [ 3 :
               {
               ID: 1003
               someInfoA : valueA
               someInfoB : valueB
               }
          ]
     }
     { national : 
       [ ... ]
       [ ... ]
     }
] 

在此数据示例中,我需要查看ID: 1002是否存在,如果存在,则返回数组索引:[2],如果不返回false。我已经看到过各种确定键/值是否存在的方法,但是我还没有看到用于返回其所属数组索引的非循环方法。

tmroybq 回答:php获取具有特定键值的对象的数组索引

您可以结合使用array_column()array_search()。看看here

$records = [
    [
        'id' => 2135,'first_name' => 'John','last_name' => 'Doe',],[
        'id' => 3245,'first_name' => 'Sally','last_name' => 'Smith',[
        'id' => 5342,'first_name' => 'Jane','last_name' => 'Jones',[
        'id' => 5623,'first_name' => 'Peter',]
];
$key = array_search(3245,array_column($records,'id'));
echo $key;
,

您还可以使用array_column()创建一个以id为键的新数组。然后,您可以直接访问所有字段。

MQL4

示例输出:

$arrWithIdAsKey = array_column($records,null,'id');

echo "<pre>".var_export($arrWithIdAsKey,true)."</pre>";
本文链接:https://www.f2er.com/3165048.html

大家都在问