从两个不同的字符串

时间:2016-03-02 01:06:26

标签: php include sum addition

我想说我想要包含2个像这样的文本文件(变量是路径):

<?php
include($ingredientsFirst);
include($ingredientsSecond);
?>

$ingredientsFirst (.txt-file):

1 Banana<br>
2 Apples<br>

$ingredientsSecond (.txt-file):

3 Banana<br>
4 Apples<br>

是否有一个函数可以从两个不同的文件中总结这些成分,然后像这样输出:

4 Banana<br>
6 Apples<br>

提前致谢。

1 个答案:

答案 0 :(得分:2)

没有内置,但我认为你可以用一些数组处理这个问题。我会使用成分作为关键和数量作为价值。例如:

<?php
function combine_ingredients($files_array)
{
    $res = array();
    foreach( $file_array as $file ){
       //Open each file
       $file_r = fopen($file, 'r');
       while( ($line = fgets($file_r)) !== FALSE ){ 
           $parts = explode(' ', $line);
           //Grab the number of an ingredients 
           $quantity = intval(array_shift($parts));
           $key = implode(" ", $parts);
           //Have I seen this ingredient already
           if( isset($res[$key]) )
               $res[$key] += $quantity;
           else
               $res[$key] = $quantity;
       }
       //Close the file
       fclose($file_r);
    } 
    return $res;
}

print_r( combine_ingredients(array($ingredientsFirst, $ingredientsSecond)) );

数据不一致会导致很多错误,但这可能是一个很好的起点。