PHP多维数组长度

13

这是一个多维的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)
] ` 

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

我该怎么做?


你想要的结果是什么? - Joseph
5个回答

13

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

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

如果您不知道钥匙:

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

为了获得一个包含每个子数组计数的分离数组:

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

第一个可以适用于已知和未知密钥的工作,只需进行一些修改。谢谢... :) - Arafat Rahman

6
另一种计算内部数组长度的方法是使用 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);
}
?>  

2
请使用递归的sizeof函数或count函数。
 e.g echo (sizeof($stdnt,1) - sizeof($stdnt)) ; // this will output you 9 as you want .

首先 sizeof($stdntt,1) ; //将输出 13。其中 13 是整个数组的元素数量,而 1 表示递归计算。


1
根据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));
只有在以下条件下才能生效:
  • 第一层键必须为整数,即不能为 "字符串"
  • PHP版本需大于 5.6

0
  // 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>";
    }
  }

能否解释一下你的代码是如何工作的呢?这里的代码有点太多了,其他人如果不深入理解就直接复制粘贴可能会有困难。 - Simas Joneliunas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接