Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.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_Arrays_Array Filter - Fatal编程技术网

php数组过滤器返回对象数组上的空数组

php数组过滤器返回对象数组上的空数组,php,arrays,array-filter,Php,Arrays,Array Filter,我想用小回调过滤对象列表,在这段小代码中有一个奇怪的行为: var_dump($product_categories[90]->slug); var_dump($last_part); var_dump($last_part==$product_categories[90]->slug); $req_obj = array_filter($product_categories, function($a)

我想用小回调过滤对象列表,在这段小代码中有一个奇怪的行为:

var_dump($product_categories[90]->slug);
var_dump($last_part);
var_dump($last_part==$product_categories[90]->slug);
$req_obj = array_filter($product_categories, 
                        function($a)
                            {
                                if ((string)$a->slug == $last_part) return true;
                            });
var_dump($req_obj);
它给出这样的输出,不明白为什么最后的数组$req_obj是空的/

string 'bobby' (length=5)
string 'bobby' (length=5)
boolean true
array (size=0)
  empty
$product\u类别的var\u转储:

array (size=177)
  0 => 
    object(stdClass)[5988]
      public 'term_id' => string '38' (length=2)
      public 'name' => string 'bobby' (length=22)
      public 'slug' => string 'bobby' (length=12)
      public 'term_group' => string '0' (length=1)
      public 'term_taxonomy_id' => string '1369' (length=4)
      public 'taxonomy' => string 'product_cat' (length=11)
      public 'description' => string '...'
      public 'parent' => string '0' (length=1)
      public 'count' => int 591
      public 'meta_id' => string '1519' (length=4)
      public 'woocommerce_term_id' => string '38' (length=2)
      public 'meta_key' => string 'order' (length=5)
      public 'meta_value' => string '1' (length=1)
  1 => 
    object(stdClass)[5983]
    ...

$last_part
超出范围:

function($v) use($last_part){
    return $v->slug == $last_part;
}

$last_part
超出范围:

function($v) use($last_part){
    return $v->slug == $last_part;
}

$last_part
超出范围:

function($v) use($last_part){
    return $v->slug == $last_part;
}

$last_part
超出范围:

function($v) use($last_part){
    return $v->slug == $last_part;
}
试试这个:

 var_dump($product_categories[90]->slug);
 var_dump($last_part);
 var_dump($last_part==$product_categories[90]->slug);
 $req_obj = array_filter($product_categories[90] 
                    function($a) use ($last_part)
                        {
                            if ((string)$a->slug == $last_part) return true;
                        });
 var_dump($req_obj);
试试这个:

 var_dump($product_categories[90]->slug);
 var_dump($last_part);
 var_dump($last_part==$product_categories[90]->slug);
 $req_obj = array_filter($product_categories[90] 
                    function($a) use ($last_part)
                        {
                            if ((string)$a->slug == $last_part) return true;
                        });
 var_dump($req_obj);
试试这个:

 var_dump($product_categories[90]->slug);
 var_dump($last_part);
 var_dump($last_part==$product_categories[90]->slug);
 $req_obj = array_filter($product_categories[90] 
                    function($a) use ($last_part)
                        {
                            if ((string)$a->slug == $last_part) return true;
                        });
 var_dump($req_obj);
试试这个:

 var_dump($product_categories[90]->slug);
 var_dump($last_part);
 var_dump($last_part==$product_categories[90]->slug);
 $req_obj = array_filter($product_categories[90] 
                    function($a) use ($last_part)
                        {
                            if ((string)$a->slug == $last_part) return true;
                        });
 var_dump($req_obj);