array_push()期望参数1是数组

时间:2013-04-28 01:24:05

标签: php arrays array-push

我有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数组,我总是收到这个错误,显然它在数组中,不是整数,因为我在那里声明它而在其他任何地方。

此错误的任何解决方案?

a http://imgbin.org/images/13129.png

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:3)

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