2012-07-12 88 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 . "') "; 
    } 
}