【问题标题】:PHP Multidimensional Array LengthPHP多维数组长度
【发布时间】:2015-10-06 04:11:24
【问题描述】:

这是一个多维 PHP 数组。

$stdnt = array(
    array("Arafat", 12210261, 2.91),
    array("Rafat", 12210262, 2.92),
    array("Marlin", 12210263, 2.93),
    array("Aziz", 12210264, 2.94),
);

我可以找出数组的长度。这意味着

count($stdnt); // output is 4

[
    array("Arafat", 12210261, 2.91),
    array("Rafat", 12210262, 2.92),
    array("Marlin", 12210263, 2.93),
    array("Aziz", 12210264, 2.94)
] ` 

但无法获取内部数组长度。

我该怎么办?

【问题讨论】:

  • 你想要的结果是什么?

标签: php arrays


【解决方案1】:

如果您假设子数组的长度都相同,那么:

$count = count($stdnt[0]);

如果您不知道密钥:

$count = count(reset($stdnt));

要获得一个包含每个子数组的单独计数的数组:

$counts = array_map('count', $stdnt);

【讨论】:

  • 第一个适用于已知和未知键,并进行了一些修改。谢谢...:)
【解决方案2】:

计算内部数组长度的另一种方法是使用foreach 循环遍历数组。

<?php 
$stdnt = array(
    array("Arafat", 12210261, 2.91),
    array("Rafat", 12210262, 2.92),
    array("Marlin", 12210263, 2.93),
    array("Aziz", 12210264, 2.94),
);

foreach($stdnt as $s)
{
    echo "<br>".count($s);
}
?>  

【讨论】:

    【解决方案3】:

    请使用sizeof函数或递归计数函数

     e.g echo (sizeof($stdnt,1) - sizeof($stdnt)) ; // this will output you 9 as you want .
    

    第一个 sizeof($stdntt,1) ; // 将输出你 13 。整个数组的计数和 1 的均值 recursive 。

    【讨论】:

      【解决方案4】:

      根据Meaning of Three dot (…) in PHP 的提示,我通常在这种情况下使用以下代码:

      $stdnt = array(
          array("Arafat", 12210261, 2.91),
          array("Rafat", 12210262, 2.92),
          array("Marlin", 12210263, 2.93),
          array("Aziz", 12210264, 2.94),
      );
      echo count(array_merge(...$stdnt));
      

      Splat operator "..." 只会起作用,

      • 仅当第一级键为整数时,即不是“字符串”
      • PHP > 5.6

      【讨论】:

        【解决方案5】:
          // You may try as per this sample  
        
          $cars=array(
            array("volvo",43,56),
            array("bmw",54,678)
          );
          $mySubSize=sizeof($cars);
          for ($i=0;$i<$mySubSize;$i++) {
            foreach ($cars[$i] as $value) {
              echo "$value <br>";
            }
          }
        

        【讨论】:

        • 如果您能解释一下您的代码是如何工作的,那就太好了。这里的代码太多了,其他人无需深入理解就可以自信地复制粘贴!
        猜你喜欢
        • 2020-01-17
        • 1970-01-01
        • 2023-02-25
        • 2014-11-29
        • 1970-01-01
        • 2013-05-17
        • 2013-08-21
        • 2011-08-22
        • 2013-10-10
        相关资源
        最近更新 更多