如何使用PHP比较文本文件中的两个实例?

如何使用PHP比较文本文件中的两个实例?,php,text,compare,Php,Text,Compare,我有一个表单,用户在其中提交一个圆的半径。该区域被计算出来,并在成功页面上发布给他们 有几种形状会出现这种情况。除了文本文件上的每个圆圈,我现在如何获取这些区域,并将其与正方形的每个区域进行比较,然后例如执行诸如“哪种形状类型的总面积组合更大:'此处形状名称'”之类的查询 没有代码的原因是我甚至不知道从哪里开始!文本文件具有以下布局: Triangle,Red,12,12,12,12 Triangle,Red,12,12,12,12 Triangle,Red,12,12,12,12 Circle

我有一个表单,用户在其中提交一个圆的半径。该区域被计算出来,并在成功页面上发布给他们

有几种形状会出现这种情况。除了文本文件上的每个
圆圈
,我现在如何获取这些区域,并将其与
正方形
的每个区域进行比较,然后例如执行诸如“哪种形状类型的总面积组合更大:'此处形状名称'”之类的查询

没有代码的原因是我甚至不知道从哪里开始!文本文件具有以下布局:

Triangle,Red,12,12,12,12
Triangle,Red,12,12,12,12
Triangle,Red,12,12,12,12
Circle,Red,2134
Triangle,Green,10,20,5,6
Circle,Red,120
Triangle,Green,10,20,30,40
Circle,Blue,120
Square,Red,120
Circle,Red,123
Circle,Red,123

我假设您有一个名为area的函数:

function area($shape, $params) {
  // do your calculations
}
我们将有一个关联数组
$total
,它将保存像
'Triangle'=>47这样的数据

$s = file_get_contents("input.txt");

foreach(explode("\n", $s) as $line) {
  $parts = explode(",", $line);
  $shape = $parts[0];
  $params = array_slice($parts, 2);
  $total[$shape] += area($shape, $params);
}
arsort($total); // reverse sort the array by the total area
reset($total); // needed for key() to point to the first item
echo key($total); // echo the shape with the largest area

文本文件是什么样子的?只有一个以空格分隔的半径列表?@mirelon指的是main post,因此您要计算形状所有实例相对于重叠的总面积吗?@mirelon它已经计算了每个输入的面积,我想要它,所以现在它把像“圆”这样的形状的所有面积加起来,然后将它与“正方形”的所有总面积的总和进行比较。我对这些数字有点困惑。。。为什么三角形有4个数字而不是只有3个?