从REST api,我使用
将json数据转换为数组数据$return= json_decode($response, true);
每个数组中有相同键的2个值,例如:
['some1']=>array(
[0]=> array(['data']=>0)
[1]=> array(['data']=>1)
)
..
我做了一个for循环来显示结果为0或1的['data']
的值。现在我想计算整个数组中['data']
的总数0或1。我怎么能这样做?
这是我的for循环看起来像:
for ($i = 0; $i < count($return['some1']); $i++){
echo $return['some1'][$i]['data'] ."<br/>" ;}
回声显示:
0
1
谢谢,
答案 0 :(得分:1)
$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;
答案 1 :(得分:1)
只需提取data
列并计算值即可。键将包含值(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]
将包含它们的计数等......
答案 2 :(得分:0)
如果您想知道“数据”的每个值重复多少次,您可以使用以下内容来跟踪:
// 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);