计算多维数组中特定位置的值

时间:2016-12-18 00:21:06

标签: php arrays multidimensional-array

我有一个多维数组,如下所示:

array(6) {
  [0]=>
  array(6) {
    [0]=>
    string(5) "email"
    [1]=>
    string(5) "vote1"
    [2]=>
    string(5) "vote2"
    [3]=>
    string(5) "vote3"
    [4]=>
    string(5) "vote4"
    [5]=>
    string(5) "vote5"
  }
  [1]=>
  array(6) {
    [0]=>
    string(5) "a@a.a"
    [1]=>
    string(1) "A"
    [2]=>
    string(1) "B"
    [3]=>
    string(1) "C"
    [4]=>
    string(1) "D"
    [5]=>
    string(1) "E"
  }
  [2]=>
  array(6) {
    [0]=>
    string(5) "b@b.b"
    [1]=>
    string(1) "A"
    [2]=>
    string(1) "B"
    [3]=>
    string(1) "C"
    [4]=>
    string(1) "D"
    [5]=>
    string(1) "E"
  }
  [3]=>
  array(6) {
    [0]=>
    string(5) "c@c.c"
    [1]=>
    string(1) "A"
    [2]=>
    string(1) "B"
    [3]=>
    string(1) "C"
    [4]=>
    string(1) "D"
    [5]=>
    string(1) "E"
  }
  [4]=>
  array(6) {
    [0]=>
    string(5) "d@d.d"
    [1]=>
    string(1) "A"
    [2]=>
    string(1) "B"
    [3]=>
    string(1) "C"
    [4]=>
    string(1) "D"
    [5]=>
    string(1) "E"
  }
  [5]=>
  array(6) {
    [0]=>
    string(5) "e@e.e"
    [1]=>
    string(1) "A"
    [2]=>
    string(1) "B"
    [3]=>
    string(1) "C"
    [4]=>
    string(1) "D"
    [5]=>
    string(1) "E"
  }
}

我想计算每个数组位置[1]的每个值的次数。

我尝试了许多内容,包括array_count_values(),但这并不允许选项在每个数组的某个位置计算出现次数。我不太确定如何处理这个问题,因为数组是多维的,我从来没有必要处理只计算特定位置的值。

如果对此的答案显而易见,我道歉,我已经在这个问题上工作了几个小时但无济于事,但我也是数组的初学者,特别是多维。欢迎所有想法:)

2 个答案:

答案 0 :(得分:2)

您可以做的是,您可以遍历数组并将[1]的值放入另一个数组中,并在结果数组上应用array_count_values

$a = array();
foreach ($arr as $ar) {
  $a[] = $ar[1];
}
print_r(array_count_values($a));

这会给你:

  • vote1:1
  • A:5

如果您正在寻找上述内容?如果您想要更短的版本,也可以使用array_column

答案 1 :(得分:0)

使用array_column($ array,1)将position [1]元素作为数组获取;然后使用你的array_count_values()来计算它们。

<?php
$array = [[1,2,3],[2,3,4]];
var_dump(array_count_values ( array_column($array,1) ));
相关问题