2013-04-28 3 views
0

PHP 문제가 있습니다.array_push()는 매개 변수 1이 배열이 될 것으로 예상합니다.

가이 코드 블록을

$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

+1

분명히'var_dump' 또는'print_r' 당신의 "array"에러 메시지가 아니기 때문에 결과물을 넣으십시오. –

+0

대신에 $ arr_foundits [] = $ it-> ID'를 써야합니다. ... –

+1

이것은 텍스트 기반 온라인 웹 사이트이므로 스크린 샷으로는 아니지만 텍스트 정보를 텍스트로 삽입하십시오. 이는 오류 메시지에 특히 중요합니다. – hakre

답변

4

array_push는 원래 배열을 수정, 그것은 "새로운"하나를 반환하지 않습니다. 정수의 배열의 새로운 길이를 반환합니다. 루프가 돌아 오는 두 번째 시간은 배열 대신 숫자를 입력하는 것입니다. Docs

+0

예, 오프 컵, 그게 어떻게 날 도망 쳤지. – digitalzoomstudio

3

$arr_foundits$arr_foundits = array_push($arr_foundits, $it->ID);에 덮어 쓰고 있습니다. $arr_foundits =을 제거하면 array_push은 배열이 아닌 int를 반환합니다.

+0

정말 이상한 종류입니다. 예를 들어, array_merge는 배열을 반환하지만, 동일한 필드의 의미 상 array_push는 int를 반환합니다. 어쨌든 , 감사합니다. – digitalzoomstudio

관련 문제