我有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数组,我总是收到这个错误,显然它在数组中,不是整数,因为我在那里声明它而在其他任何地方。
此错误的任何解决方案?
答案 0 :(得分:4)
array_push
修改原始数组,它不返回“新”数组。它返回数组的新长度,这是一个整数。所以循环第二次出现时,你正在给它一个数而不是一个数组。 Docs
答案 1 :(得分:3)
您正在$arr_foundits
覆盖$arr_foundits = array_push($arr_foundits, $it->ID);
。删除$arr_foundits =
,因为array_push
不返回数组,而是返回int。