Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php搜索对象数组以查找指针和索引的最快方法_Php_Multidimensional Array - Fatal编程技术网

php搜索对象数组以查找指针和索引的最快方法

php搜索对象数组以查找指针和索引的最快方法,php,multidimensional-array,Php,Multidimensional Array,PHP版本:5.3 在Wordpress中,我有一个具有这种格式的类别中所有帖子的数组 array 0 => public 'ID' => int 360 public 'post_title' => string 'Batman v Superman: Dawn of Justice' 1 => public 'ID' => int 371 public 'post_title' => strin

PHP版本:5.3

在Wordpress中,我有一个具有这种格式的类别中所有帖子的数组

array
  0 => 
      public 'ID' => int 360
      public 'post_title' => string 'Batman v Superman: Dawn of Justice' 
  1 => 
      public 'ID' => int 371
      public 'post_title' => string 'Star Wars: Episode VII - The Force Awakens'
... =>

知道当前帖子的“帖子标题”后,使用“帖子标题”作为指针搜索数组并找到其索引的最有效方法是什么?

PHP7+

本机函数通常最快,因为它们可以在PHP解释器中进行优化:

array_search($post_title, array_column($yourArray, 'post_title'));
array\u column
正在将对象数组转换为索引=>post title的简单数组
array\u search
然后扫描该数组,查找与正在搜索的标题匹配的索引


PHP5.3

PHP 5.3不受支持,不应再使用,但如果您没有选择,
array\u column
不可用,因此我将使用:

array_search($post_title, 
     array_map(function($object) {
             return $object->post_title;
         },
         $yourArray
     )
);

PHP7+

本机函数通常最快,因为它们可以在PHP解释器中进行优化:

array_search($post_title, array_column($yourArray, 'post_title'));
array\u column
正在将对象数组转换为索引=>post title的简单数组
array\u search
然后扫描该数组,查找与正在搜索的标题匹配的索引


PHP5.3

PHP 5.3不受支持,不应再使用,但如果您没有选择,
array\u column
不可用,因此我将使用:

array_search($post_title, 
     array_map(function($object) {
             return $object->post_title;
         },
         $yourArray
     )
);

@AbraCadaver
array\u column
用于对象阵列。从文档中:
如果提供了一个对象数组,那么就可以直接提取公共属性。
:从PHP7开始,如果OP甚至有>=5.5的包含
数组的列()
:-)谢谢你,Matt。对不起,我应该指定PHP的版本,5.3。在5.5版本之前,有没有一种方法可以像array_column一样高效?非常好用。感谢you@AbraCadaver
array\u column
适用于对象数组。从文档中:
如果提供了一个对象数组,那么就可以直接提取公共属性。
:从PHP7开始,如果OP甚至有>=5.5的包含
数组的列()
:-)谢谢你,Matt。对不起,我应该指定PHP的版本,5.3。在5.5版本之前,有没有一种方法可以像array_column一样高效?非常好用。感谢您在PHP<5.5版本上为我们提供了一个与数组_列兼容的函数。在PHP<5.5版本上为我们提供了一个与数组_列兼容的函数。