0

我有一个 PHP 问题。

我有这个代码块

$arr_foundits = array();
foreach($its as $it){
    //print_r($it);
    $post_categories = wp_get_post_categories( $it->ID );
    $cats = array();

    foreach($post_categories as $c){
        $cat = get_category( $c );
        $catname = strtolower($cat->name);
            //print_r($catname);
            if($catname=='uncategorized'){
                continue;
            }

            $squery = get_search_query();


            if(strpos($catname, strtolower($squery))!==false){
                //echo 'ceva';
                $found = true;
                $arr_foundits = array_push($arr_foundits, $it->ID);//line 80 hier
                printf('<li><h4><a href="%1$s">%2$s</a></h4><p>%3$s</p></li>', get_permalink($it->ID), $it->post_title, get_the_excerpt_by_id($it->ID));
            }
    }
}

我遇到的问题是 $arr_foundits 数组,我总是收到这个错误,很明显它在数组中,绝不是整数,因为我在那里声明了它,没有其他地方。

这个错误有什么解决办法吗?

一个
(来源:imgbin.org

4

2 回答 2

4

array_push修改原始数组,它不返回“新”数组。它返回数组的新长度,它是一个整数。所以第二次循环出现时,你给它一个数字而不是一个数组。文档

于 2013-04-28T01:26:24.637 回答
3

您正在覆盖$arr_foundits. $arr_foundits = array_push($arr_foundits, $it->ID);删除$arr_foundits =asarray_push不返回数组,而是返回一个 int。

于 2013-04-28T01:26:46.707 回答