如何在PHP中获取对象数组的记录计数

如何在PHP中获取对象数组的记录计数,php,mongodb,Php,Mongodb,我试图显示从mongo 3.4数据库返回的记录总数。对于这个特定的查询,结果应该是380,但显示的是14489。我确信这是我错过/忘记PHP的一些简单的东西 代码如下:包括一些关于我正在处理的变量类型的调试语句 $numrecords = count($records); echo"<BR><font color=red>".gettype($records)."</font

我试图显示从mongo 3.4数据库返回的记录总数。对于这个特定的查询,结果应该是380,但显示的是14489。我确信这是我错过/忘记PHP的一些简单的东西

代码如下:包括一些关于我正在处理的变量类型的调试语句

       $numrecords = count($records);                                
       echo"<BR><font color=red>".gettype($records)."</font>";
       echo"<BR><font color=red>".sizeof($records)."</font>";
       if (  $numrecords > 0 ) {
              echo "<tr><td colspan='5'><h3>Record Count: ".$numrecords ."</h3></td></tr>";
              echo "<tr><th>PH Number</th><th>Department</th></tr>";
              foreach ( $records as $rec ) {
                     if (!empty($rec->department)) {                                                                                          
                         echo "<tr>";
                         echo "<td>". $rec->phnum . "</td>";
                         echo "<td>". $rec->department . "</td>";
                         echo "</tr>";
                     }   
              } //end for 
       } else {
              echo "<tr><td colspan='5'>No matching data</td></tr>";                                  
       } 
它表示对象类型为“数组”。我一直在玩count vs.sizeof


任何提示都将不胜感激

所以它显示了表中正确的行数,但计数显示的行数比显示的表中的行数多

在查询后尝试使用msqli_num_行

下面是一个示例,由于您没有提供查询代码,您必须根据需要进行更改

$sql = "SELECT * FROM table_name WHERE datarow='$datarow'";
$result = mysqli_query($conn, $sql);
//this is where you count the number of rows returned from this query.
$count = mysqli_num_rows($result);

如果这不起作用,您的查询将出现问题,无法满足您所需的规范。

请验证您在PHP中的mongodb查询是否返回了预期的文档数?、使用一些DBMS或使用命令执行查询。查询在哪里?您是否搞错了连接?这里显示的是$records是如何处理的,而不是它最初是如何生成的,这可能会有所帮助。@YulioAlemanJimenez查询是正确的,因为我遍历它们时显示的结果都是我要查找的结果。和我将结果表复制粘贴到记事本中,共有380行。请显示提供$records的源查询和代码。如果它是有效的,那么您甚至可以尝试强制使用数组来确定。但如果不确定,则显示代码。这是否适用于mongo db?@sicksixstrings mysqli_num_rows用于计算mysqli的结果数,它不适用于mongodb@dot您可能需要检查此链接