2012-09-15 5 views
0

PHP에서 중첩 for 루프를 만들려고하지만이 코드는 수천 개의 반환 값을 생성합니다.PHP에서 중첩 for 루프 만들기

내가하려고하는 것은 rss 피드 (배열의 두 개)를 읽고 내 데이터베이스에있는 피드의 게시물을 비교하는 것입니다. 게시물의 새 제목이 내 데이터베이스의 제목과 같지 않으면 내 데이터베이스에 추가됩니다.

나는 내 코드 묶음을 버리려는 것이 아니라 PHP에서 중첩 된 for 루프를 만든 적이 없으며 이것이 가능한지 확실하지 않습니다.

$url_feeds = array('0' => array('user_id' => '1','feed' => 'http://feeds.abcnews.com/abcnews/topstories'), 
        '1' => array('user_id' => '2','feed' => 'http://feeds.reuters.com/reuters/MostRead')); 


    for($i=0;$i<sizeof($url_feeds);$i++){ 
      $user_id = $url_feeds[$i]['user_id']; 
        // echo $user_id; 
      $feed = $url_feeds[$i]['feed']; 
        //echo $feed; 

      $abc =$this->get_rss_feeds($feed); //This returns an array of all RSS feed posts. 
        //print_r($abc); 
      $post = new post_model(); 

        //print_r($res); 

     for($i=0;$i<sizeof($abc);$i++) 

      { 
       $link = $abc[$i]['link']; 
       $title = $abc[$i]['title']; 
     // echo $title; 
       $date_published = $abc[$i]['pubDate']; 
    $res = $post->get_new_user_posts($user_id); // This returns an array of posts in my database (It's sent user_id meaning, the id of the feed see top above array) 
        foreach ($res as $key => $value) 
         { 
         $new_title = $value->title; 
     // echo $new_title; 
     //echo $title; 
         $new_link = $value->link; 
           if ($title != $new_title) 
             { 
             // echo 'NOT A MATCH'.$i; 
             $update_new_user_posts = $post->post_to_new_user_posts($user_id,$link,$title,$date_published); 
             } 
         } 
      } 
    } 

답변

1

두 루프 모두에서 동일한 변수 $ i를 사용하고 있습니다. 일반적으로 이것은 올바르지 않으며 제어되지 않은 동작을 초래합니다.

+0

나는 통제되지 않는 대신에 원치 않는 행동을 말하고, 그것은 논리에 의해 완전히 제어된다. 계산할 수있다. – dbf