【问题标题】:PHP get number of (distinct) data in columnPHP获取列中(不同)数据的数量
【发布时间】:2012-07-26 19:35:30
【问题描述】:

喂!

如何从我的 PHP 表的第 3 列和第 6 列获取不同数据的数量:

<?php

打开文本文件(第一行是由;分隔的标题)

$fp = fopen('C:\...\usedlicences.txt','r') or die("can't open file");

创建带边框的表格

echo "<table id='MyTable' border='1'>\n";

为带有标题的表格创建标题行

echo "<td><b>id</b><td><b>name</b></td><td><b>surname</b></td><td><b>address</b></td><td><b>state</b></td><td><b>phone</b></td><td><b>city</b></td><td><b>date</b></td><td><b>color</b></td>";                          
$length = 1000;
$delimiter = ";";      
$k=1;

从文件创建行并用数据填充它们(跳过第一(标题)行)并添加写入行ID的第一列

$csv_line = fgetcsv( $fp, $length, $delimiter); 
while($csv_line = fgetcsv( $fp, $length, $delimiter ) ) {
echo "<tr>";            
echo "<td>$k</td>";
$k++;   
for ($i = 0, $j = count($csv_line); $i < $j; $i++) {
echo '<td>'.$csv_line[$i].'</td>';  
}
}
echo "<tr>";   
echo '</table>';
fclose($fp) or die("can't close file");
?>

用于显示使用了多少许可证的警报(所有行减去标题行)

<script language="JavaScript">
var oRows = document.getElementById('MyTable').getElementsByTagName('tr');
var iRowCount = oRows.length-1;
alert('Licences used: ' + ((iRowCount)-1)+'!');
</script>

test.txt 看起来像:

id;name;surname;address;state;phone;city;date;color
1;John;Simts;Yellow 12;Greenik;1234567;Mannds;12/3/1234;blue    

谢谢,问候

【问题讨论】:

  • 不,这是我使用 phpm html 和 javascript 在表格中显示数据表单 txt 的代码。现在我需要帮助编写代码,该代码将计算不同姓氏(第 3 列)和电话(第 6 列)的数量。

标签: php distinct


【解决方案1】:

在你的 for 循环中放置以下代码:

if ($i==3) 
   $surname[$csv_line[$i]]++;
else if ($i==6)
   $phone[$csv_line[$i]]++;

那么姓氏(第 3 列)和电话(第 6 列)的不同记录数将是:

count($surname);
count($phone);

分别。

【讨论】:

  • 这对我不起作用。我在 echo 输出中只得到一个数字,它的计算公式为“列 (18) 中的行数 * 列数 (9) = 162”
  • 我的回答试图解决这个How can I get number of distinct data from column 3 and 6。因此,如果您在 surname 列中有 10 个条目,其中 4 个是唯一的,并且在 phone 列中有 10 个条目,其中 8 个是唯一的,那么 count($surname) =&gt; 4count($phone) =&gt; 8。如果您需要其他内容,请重新表述您的问题
  • 您是否知道如何按列对表格进行排序 - 当我点击选择的标题(标题名称将是链接)时,表格将按该标题 - 列排序?
  • 请将此标记为已回答,我很乐意就单独的主题为您提供进一步帮助。
猜你喜欢
  • 2019-10-22
  • 2015-02-28
  • 1970-01-01
  • 1970-01-01
  • 2012-04-17
  • 2018-05-17
  • 2021-06-13
  • 1970-01-01
  • 2015-03-25
相关资源
最近更新 更多