2016-07-22 111 views
0

下面的代碼中的for循環無法正常工作。如何使用for循環從php列表中提取數據使用php

$html= @file_get_html($url); 
$job_array = array(); 
foreach($html->find('a') as $link) { 
    // $links=$html->find('a'); 
    if (strpos($link->href, '/job-category/') !== false) { 
    $job_array[] = $link->href . "<br/>"; 
    } 

    for ($a = 0; $a <= ($link->href); $a++) { 
    //$page_number = 20; 
    // for ($i = 1; $i <= $page_number; $i++) { 
    $html2 = file_get_html($link->href); 
    $response = array(); 
    foreach ($html2->find('div#mainContent') as $header) { 
    $response[] = $header->innertext . "<br/>"; 
    print_r($response); 
    } 
    } 
+0

你有什麼錯誤嗎? –

+2

也許你應該更詳細地解釋你的意思是「不起作用」 – RamRaider

+0

歡迎來到Stack Overflow!我儘可能地猜測你的問題,然後編輯你的問題。但是,請添加對代碼和說明的解釋,以便讓更多具有該主題知識的人員看到它。如果需要識別特定問題,請編輯您遇到的特定錯誤消息。祝你好運! – manetsus

回答

0

我覺得

$link->href 

不是一個數字,for循環不能使用非數字到$一個比較和迭代。也許你可以這樣做:

$html= @file_get_html($url); 
    $job_array = array(); 
    $myNumberToIterateWith = 0; 
     foreach($html->find('a') as $link) { 
     // $links=$html->find('a'); 
     $myNumberToIterateWith++; 
     if (strpos($link->href, '/job-category/') !== false) { 
      $job_array[] = $link->href . " "; 
     } 

     for ($a = 0; $a <= $myNumberToIterateWith; $a++) { 
     //$page_number = 20; 
     // for ($i = 1; $i <= $page_number; $i++) { 
     $html2 = file_get_html($link->href); 
     $response = array(); 
     foreach ($html2->find('div#mainContent') as $header) { 
     $response[] = $header->innertext . "<br/>"; 
     print_r($response); 
     } 
     } 

雖然我不確定你希望結果是什麼。提供關於您希望用代碼完成的線索是有幫助的。

+0

@dolyanne有沒有幫助? – Kyrre