2012-07-12 50 views
1

我有2個foreach循環,它們都通過相同的數組循環;但是,在使用str_replace之後,一個循環遍歷數組,而另一個不使用str_replace;座標2 foreach循環

我的問題;我如何協調這2個循環,以便它們將同時循環通過相同的數組?

對不起,如果我的問題不是描述性的;

$contents = ftp_nlist($conn_id, $dir); 
$unalteredcontents = ftp_nlist($conn_id, $dir); 
foreach ($unalteredcontents as $fname2) 
{ 
    if (($fname2 != '.') && ($fname2 != '..')) 
    { 
     $url = "http://mywebsite.com/folder/" . $userid . "/" . $fname2 . ""; 
     next($fname2); 
    } 
} 
$contents = str_replace("-", '', $contents); 
$contents = str_replace(".pdf", '', $contents); 

foreach ($contents as $fname) 
{ 
    if (($fname != '.') && ($fname != '..')) 
    { 
     $sql_select = "INSERT INTO `database`.`column` (`data`, `fileurl`) VALUES ('" . $fname . "', '" . $url . "') "; 
    } 
} 
+0

你說的意思是「在同一時間」?像在多線程中一樣? – ApplePie 2012-07-12 16:50:16

+0

'str_replace()'返回一個字符串,你在'foreach'中使用它? – nickb 2012-07-12 16:53:48

+1

你沒有,你有一個foreach循環,這兩個任務 – 2012-07-12 16:54:14

回答

1

事情是這樣的:

$unalteredcontents = ftp_nlist($conn_id, $dir); 
$contents = str_replace("-", '', $unalteredcontents); 
$contents = str_replace(".pdf", '', $contents); 

foreach ($contents as $key => $fname) 
{ 
    if (($fname != '.') && ($fname != '..')) 
    { 
     $url = "http://mywebsite.com/folder/" . $userid . "/" . $unalteredcontents[$key]; 
     $sql_select = "INSERT INTO `database`.`column` (`data`, `fileurl`) VALUES ('" . $fname . "', '" . $url . "') "; 
    } 
} 
+1

Elen的解決方案更通用,而我的優勢在於可以使用相同的鍵取兩個平行數組,並使用'foreach'中的鍵索引到數組中,而不是'foreach'。 – 2012-07-12 17:02:17

+0

謝謝你的工作! – 2012-07-12 17:19:17

+0

這裏我總是儘量保持原始代碼不變,因爲我不知道它是否在腳本的其他地方使用=) – Elen 2012-07-13 09:46:40

1

從你的問題還不清楚。但我給它一個去:

$unalteredcontents = ftp_nlist($conn_id, $dir); 
foreach ($unalteredcontents as $fname2) 
{ 
    if (($fname2 != '.') && ($fname2 != '..')) 
    { 
     $url = "http://mywebsite.com/folder/" . $userid . "/" . $fname2 . ""; 

     $contents = str_replace("-", '', $fname2); 
     $contents = str_replace(".pdf", '', $contents); 

     $sql_select = "INSERT INTO `database`.`column` (`data`, `fileurl`) VALUES ('" . $contents. "', '" . $url . "') "; 
    } 
}