如何在不使用PHP的循环的情况下获取对象数组的索引

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在不使用PHP的循环的情况下获取对象数组的索引相关的知识,希望对你有一定的参考价值。

我需要从对象数组中获取索引,而无需使用php按照键名使用循环。在这里,我在下面解释我的代码。

$arr = array(array("name"=>"Jack","ID"=>10),array("name"=>"Jam","ID"=>11),array("name"=>"Joy","ID"=>12));
$key = array_search('Jack', $arr);

echo $key;exit;

这里我的代码没有给出任何输出。通过使用一些键名,我需要该对象在数组内的索引,而且我也不想使用任何循环。我需要在构建方法中使用任何PHP,以便可以直接获得结果。

答案
<?php
$arr = array(array("name"=>"Jack","ID"=>10),array("name"=>"Jam","ID"=>11),array("name"=>"Joy","ID"=>12));

//calling function searchByName
$key = searchByName('Jasck',$arr);

if($key != '-1')
  print_r($arr[$key]);  
else
    echo "No match found";


//function to chek if the name is there or not.
function searchByName($name, $array) 
   foreach ($array as $key => $val) 
       if ($val['name'] == $name) 
           return $key;
       
   
   return '-1';

sandbox

另一答案
$arr = array(array("name"=>"Jack","ID"=>10),array("name"=>"Jam","ID"=>11),array("name"=>"Joy","ID"=>12));

function myfunction($v)return  $v['name'];
echo array_search('Jack', array_map( 'myfunction', $arr ));

以上是关于如何在不使用PHP的循环的情况下获取对象数组的索引的主要内容,如果未能解决你的问题,请参考以下文章

如何在不使用 for 循环的情况下从 appsettings 文件中读取对象数组中特定键的值

如何在没有for循环的情况下引用数组的多个索引值?

在不知道对象索引的情况下从数组中删除对象?

重构 PHP OOP - 如何在不传递参数的情况下获取对象?

获取数组内对象的索引,匹配条件

如何在不循环的情况下将数组(Range.Value)传递给本机 .NET 类型?