Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 计算多维数组中的数组数_Php - Fatal编程技术网

Php 计算多维数组中的数组数

Php 计算多维数组中的数组数,php,Php,我有一个名为 $results['picks] 数组的vardump是: var_dump($results['picks'] array(1) { [0]=> string(2) "55" } array(1) { [0]=> string(2) "69" } array(1) { [0]=> string(2) "71" } array(1) { [0]=> string(2) "72" } array(1) { [0]=>

我有一个名为

$results['picks]
数组的vardump是:

var_dump($results['picks']

array(1) {
  [0]=>
  string(2) "55"
}
array(1) {
  [0]=>
  string(2) "69"
}
array(1) {
  [0]=>
  string(2) "71"
}
array(1) {
  [0]=>
  string(2) "72"
}
array(1) {
  [0]=>
  string(2) "73"
}
如何计算内部的所有数组? 结果是5,所以我需要得到这个数字 我在试着用

count();
但我得到的结果是:

1
1
1
1
1

你可能在找这个- 您需要递归地计算数组值,因为它是多维数组

<?php
$food = array('fruits' => array('orange', 'banana', 'apple'),
              'veggie' => array('carrot', 'collard', 'pea'));

// recursive count
echo count($food, COUNT_RECURSIVE); // output 8

// normal count
echo count($food); // output 2

?>

您可以在此处获得更多信息:

您仍然有问题,因此我创建了phpFIDLE:


请看一看。

您的代码从第一篇文章中得到了1,因为您没有尝试访问数组中已有的值(据我所知,这些值代表您需要获取的“计数”),而是计算该数组中的元素数

如果我很好地理解你想要完成什么,你可以用下面的代码来完成

//if you want to get just the 5 numbers (written are shown as strings in your var dump), which as I undersand you store your count values

$extracted_arr = array_map(function($item){ return array_shift($item); }, $result['picks']); 

foreach($extracted_arr as $count)
    echo $count; 

// you should see 55 69 71 72 73 
编辑:包括您的评论

//this should get you what you need

//create an array of counts
$count_arr = array_map(function($item){ return count($item); }, $result['picks']); 

//sum these counts
$five = array_sum($count_arr); 

我认为$results['picks']包含5个不同的数组。这就是为什么count()给出五个1的原因。因此,如果您希望结果为5,那么首先合并所有这些数组,然后使用count()两个echo返回我11我想计算55中的数组数是1,69是另一个1。。。它们都是=5,我只需要这个“5”数字:-)结果还是1,第二个代码段中没有回音,因此您可能做错了什么,或者使用了第一个代码段。如果你运行第二个,你应该得到“5”,如果你回显$5;把你正在使用的全部代码放到你的问题中,我怀疑你试图在foreach循环中使用我的代码,这是错误的。在我的解决方案中,您不应该单独“计数”$result['picks']的每个元素-数据由array_sum函数聚合为单个数字(当然是一个和)。而不是做一个foreach,得到1,你将数组加起来,你将输入foreach,得到5。对不起,这是我的错。我会在while()中回显它,因为我在多个查询中将这个参数设置为$results['picks'],我很难将它放入循环外的变量数组中