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'],我很难将它放入循环外的变量数组中