Php 如何传递两个数组?

Php 如何传递两个数组?,php,Php,test.php目录与csv和文本文件相同。现在,我想将所有csv文件名和所有文本名传递给以下if条件。即,用所有csv文件名替换一个.csv。将一个.txt替换为所有的txt文件名 if (($handle = fopen("one.csv", "r")) !== FALSE && ($handle2 = fopen("one.txt", 'a')) !== FALSE) { ...} 下面是我的代码。运行代码后,我发现文本文件中的所有内容都是相同的。循环次数太多了。如何更改

test.php目录与csv和文本文件相同。现在,我想将所有csv文件名和所有文本名传递给以下if条件。即,用所有csv文件名替换一个.csv。将一个.txt替换为所有的txt文件名

if (($handle = fopen("one.csv", "r")) !== FALSE && ($handle2 = fopen("one.txt", 'a')) !== FALSE) { ...}
下面是我的代码。运行代码后,我发现文本文件中的所有内容都是相同的。循环次数太多了。如何更改代码?谢谢

    $files = glob("./*.csv");
    $files1 = glob("./*.txt");
    foreach($files as $filepath){
    foreach($files1 as $filepath1){


   $row = 1;
if (($handle = fopen("one.csv", "r")) !== FALSE && ($handle2 = fopen("one.txt", 'a')) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        if($row > 1) {
            $url = $data[8];
            foreach($result[0] as $url){
                fwrite($handle2, $url."\r\n");
            }

        }
        $row++;
    }
    fclose($handle);
    fclose($handle2);
}

    }
    }

txt文件为空。现在,我想读取csv文件并提取其中的一些内容,然后将它们放入文本文件中。谢谢

您不需要glob.txt文件,只需glob csv,并将扩展名.csv替换为.txt即可


问题是你在一个循环中有一个循环。所以每次第一个循环循环时,它都会再次在第二个循环中执行所有操作

试着这样做:

$csv_files = glob("./*.csv");
$txt_files = glob("./*.txt");

$csvs = array();
foreach($csv_files as $fp){
    $csvs[] = fopen($fp, "r");
}

$txts = array();
foreach($txt_files as $fp){
    $txts[] = fopen($fp, "r");
}

var_dump($csvs); // all csv file info
var_dump($txts); // all txt file info

您可以测试以查看!==如果愿意,在单独的循环中为false。否则,如果您只想使用它们,那么您可以通过单独的数组循环,并以这种方式从中获取信息。

我不知道您想要实现什么。请你重新表述你的问题,让它更有意义,好吗?我想他想打开脚本目录中所有扩展名为.txt或.csv的文件。你想用扩展名为.txt的文件打开一个.csv文件吗?我想做的是打开csv文件并将一些内容写入txt文件啊,你想在.txt文件中写什么?与.txt文件具有相同文件名的.csv文件的内容?我们希望这里能有更多的细节。我写这篇文章的前提是你想把你的CSV和TXT分开。但是,您可以按照@Bartimeus所说的操作,在开始处合并两个数组$all_files=array_merge$csv_files,$txt_files;然后你只需要一个foreach循环。就性能而言,这不会有多大区别,但如果你想一视同仁,这可能对你更有用。是的,鉴于我们不知道他想做什么,很难帮助他…如果我合并两个阵列。如果$handle=fopenone.csv,r!=FALSE&&$handle2=fopenone.txt,“a”!=False,即替换one.csv和one.txt。
$csv_files = glob("./*.csv");
$txt_files = glob("./*.txt");

$csvs = array();
foreach($csv_files as $fp){
    $csvs[] = fopen($fp, "r");
}

$txts = array();
foreach($txt_files as $fp){
    $txts[] = fopen($fp, "r");
}

var_dump($csvs); // all csv file info
var_dump($txts); // all txt file info