php,foreach(for)循环中具有多值的键的总计数
从RESTAPI中,我使用php,foreach(for)循环中具有多值的键的总计数,php,api,for-loop,count,Php,Api,For Loop,Count,从RESTAPI中,我使用 $return= json_decode($response, true); 每个数组中的同一个键有2个值,例如: ['some1']=>array( [0]=> array(['data']=>0) [1]=> array(['data']=>1) ) 。。 我做了一个for循环来显示['data']的值,结果是0或1。现在我想计算整个数组中['data']的总数0或1。我该怎么做? 这是我的for循环,看起来像: fo
$return= json_decode($response, true);
每个数组中的同一个键有2个值,例如:
['some1']=>array(
[0]=> array(['data']=>0)
[1]=> array(['data']=>1)
)
。。
我做了一个for循环来显示['data']
的值,结果是0或1。现在我想计算整个数组中['data']
的总数0或1。我该怎么做?这是我的for循环,看起来像:
for ($i = 0; $i < count($return['some1']); $i++){
echo $return['some1'][$i]['data'] ."<br/>" ;}
谢谢,$count\u 0=0;
$count_0 = 0;
$count_1 = 0;
for ($i = 0; $i < count($return['some1']); $i++){
if ($return['some1'][$i]['data'] == 0) {
$count_0++;
}
if ($return['some1'][$i]['data'] == 1) {
$count_1++;
}
}
echo $count_0;
echo '<br/>';
echo $count_1;
$count_1=0;
对于($i=0;$i ”;
echo$count_1;
$count\u 0=0;
$count_1=0;
对于($i=0;$i ”;
echo$count_1;
如果您想知道“数据”的每个值重复了多少次,您可以使用以下方法来跟踪:
// Your input data
$data = array(
'some1' => array(
array('data' => 0),
array('data' => 1),
array('data' => 1),
array('data' => 1),
array('data' => 0)
)
);
// Store the result
$result_array = array();
// Count each unique value for 'data'
foreach ($data['some1'] as $key => $value) {
if ( ! isset($result_array[$value['data']])) {
$result_array[$value['data']] = 0;
}
$result_array[$value['data']]++;
}
// Display unqiue results & their respective counts
print_r($result_array);
示例:如果您想知道“数据”的每个值重复了多少次,您可以使用以下方法来跟踪:
// Your input data
$data = array(
'some1' => array(
array('data' => 0),
array('data' => 1),
array('data' => 1),
array('data' => 1),
array('data' => 0)
)
);
// Store the result
$result_array = array();
// Count each unique value for 'data'
foreach ($data['some1'] as $key => $value) {
if ( ! isset($result_array[$value['data']])) {
$result_array[$value['data']] = 0;
}
$result_array[$value['data']]++;
}
// Display unqiue results & their respective counts
print_r($result_array);
示例:只需提取数据列
并计算值。该键将包含值(0或1),该值将包含计数:
$counts = array_count_values(array_column($return['some1'], 'data'));
echo $counts[0]; // return the count of 0s
echo $counts[1]; // return the count of 1s
如果其中有2个,则$counts[2]
将包含它们的计数等。只需提取数据列并对值进行计数。该键将包含值(0或1),该值将包含计数:
$counts = array_count_values(array_column($return['some1'], 'data'));
echo $counts[0]; // return the count of 0s
echo $counts[1]; // return the count of 1s
如果您有2个,那么$counts[2]
将包含一个计数,等等。您需要0+1+1等的总数吗。。。或者你需要知道有多少个1吗?那不是同一个数字吗,@VA79?所有1
s的计数与所有1
s的总和相同。@Qirel您也可以对所有1进行计数,然后乘以1得到总和:这是真的…:我需要一些睡眠!抱歉:)哈哈,真的@Don'tPanic:-)去罗马的路有很多!你需要0+1+1等的总数吗。。。或者你需要知道有多少个1吗?那不是同一个数字吗,@VA79?所有1
s的计数与所有1
s的总和相同。@Qirel您也可以对所有1进行计数,然后乘以1得到总和:这是真的…:我需要一些睡眠!抱歉:)哈哈,真的@Don'tPanic:-)去罗马的路有很多!谢谢Abracadver,您的解决方案也起作用了。:-)谢谢Abracadver,您的解决方案也起作用了。:-)我明白了,我很欣赏你使用foreach循环而不是for循环,但是你的解决方案是打印一个数组而不是一个数字。然而,上面的解决方案返回的数字正是我所需要的。你能改变你的代码以数字的形式返回总数吗?我明白了,我很欣赏你使用foreach循环而不是for循环,但是你的解决方案是打印一个数组而不是一个数字。然而,上面的解决方案返回的数字正是我所需要的。您可以更改代码以将总数作为数字返回吗?