合并来自两个文本字符分隔文本文件的列

时间:2016-03-30 13:06:02

标签: php explode

我有2个文件,例如

file1.txtfile2.txt,每个包含两列的行,由:字符分隔。

file1.txt包含以下内容:(我想使用第一个'列')

a:b
markus:lanz
peter:heinrichs
lach:schnell

file2.txt包含例如以下内容(我想使用第二个'列')

b:c
lanz:hallo
heinrichs:gruss
schnell:langsam

所以我正在寻找以下输出:

a:c
markus:hallo
peter:gruss
lach:langsam

这怎么可能?

我目前的代码如下:

<?php
    $file1 = 'a:b
    markus:lanz
    peter:heinrichs
    lach:schnell';

    $file2 = '
    lanz:hallo
    heinrichs:gruss
    b:c
    test:notest
    schnell:langsam';

    $array = explode(":", $file1);
    for($i=0; $i < count($array); $i++) {
        $array = explode(":", $file1);
        $pattan = $array[$i];
        $pattern = '=\n'. $pattan .':(.*)\n=sUm';
        $result = preg_match($pattern, $file2, $subpattern);

        echo "<br>";
        echo $array[$i];
        $first = $array[$i];
        echo "<br>";
    }

    $pattern = '=\n'. $first .':(.*)\n=sUm';
    $result = preg_match($pattern, $file2, $subpattern);
    var_dump($subpattern);
?>

3 个答案:

答案 0 :(得分:0)

使用preg_splitarray_map函数的解决方案:

$file1_content = "a:b
markus:lanz
peter:heinrichs
lach:schnell";

$file2_content = "b:c
lanz:hallo
heinrichs:gruss
schnell:langsam";

// \R modifier matches line break among all platforms (\r\n|\n|\r)
$file1_parts = preg_split('/\R/', $file1_content);
$file2_parts = preg_split('/\R/', $file2_content);

$cross_result = array_map(function($fp1, $fp2){
    return explode(":", $fp1)[0] .":". explode(":", $fp2)[1] . PHP_EOL;
}, $file1_parts, $file2_parts);

$cross_result = implode("", $cross_result);

print_r($cross_result);

输出:

a:c
markus:hallo
peter:gruss
lach:langsam

答案 1 :(得分:0)

<div ng-app="myapp" ng-controller="myController">
  <div ng-repeat="food in foodList">
   <span>{{food.name}}</span>
   <input type="radio" ng-model="food.selected" name="radiofood" ng-change="toggleParam(food)"  ng-value="true">
  </div>
  <br><br>
  {{foodList[0]}}<br>
  {{foodList[1]}}<br>
  {{foodList[2]}}
</div>

答案 2 :(得分:0)

我的想法/我的代码就像那样

不工作

但在某些人讨厌或类似之前:

{{1}}