2013-10-02 84 views
0

我有一個刮板腳本:PHP:斯普利特的foreach結果

foreach($html->find('td.Live') as $e) 
echo $e->plaintext . '<br>'; 

結果將是這樣的:

name 1 status <br> 

我真的需要把結果變成2個陣列,如:

name_array = (name 1, name 2, name 3, name 4) 
status_array = (status, status, status, status) 

我該怎麼做?

+0

粘貼完整這裏輸出,使我們可以理清。 –

回答

2
$name_array = $status_array = array(); 
foreach ($html->find('td.Live') as $e) { 
    $parts = explode(" ", trim($e->plaintext)); 
    $status_array[] = array_pop($parts); 
    $name_array[] = trim(implode(" ", $parts)); 
} 
echo "<pre>Names:\n", print_r($name_array, 1), "\nStatuses:\n", print_r($status_array, 1), "</pre>"; 
+0

我的輸出如下所示: vaskemaskine 3 Optaget 0 vaskemaskine 4 Resttid:1:55 230 vaskemaskine 5 Optaget 0 vaskemaskine 6 Optaget 0 vaskemaskine 7週五 ,我需要僅2個陣列與 名稱=(vaskemaskine X ,vaskemaskine x) Status =(restid,fri,optaget) 其他什麼 – user2837690

0
$name_array = $status_array = array(); 
foreach($html->find('td.Live') as $e) { 
    $segment= explode(' ',$e->plaintext); 
    $status_array[] = $segment[2]; 
    $name_array[] = str_replace($segment[2],'',$e->plaintext); 
} 
echo 'Name: '; 
print_r($name_array); 
echo '<br> Status:'; 
print_r($status_array); 
+0

$ status_array是空白的? – user2837690

+0

我重新檢查過,對我來說工作正常。如果$ status_array沒有值,那麼$ name_array也不會從這段代碼中返回任何值。請檢查拼寫和工作流程。 – Akhil