计算多维php数组中每个键的值的出现次数

计算多维php数组中每个键的值的出现次数,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,在多维数组中计算值时,我正在寻求一些帮助 我有一个数组键,类似于“barrack obama”-值将是一个长长的数字列表 然后,下一个数组键可能类似于“另一个名称”,并且值也将是一长串数字 最多10个阵列键,所有键的排列方式都类似 示例变量转储: array(10) { ["barack obama"]=> array(4260) { [0]=> string(2) "19" [1]=> string(2) "92" [2]=> string(2) "27" [3]

在多维数组中计算值时,我正在寻求一些帮助

我有一个数组键,类似于“barrack obama”-值将是一个长长的数字列表

然后,下一个数组键可能类似于“另一个名称”,并且值也将是一长串数字

最多10个阵列键,所有键的排列方式都类似

示例变量转储:

array(10) { ["barack obama"]=> array(4260) { [0]=> string(2) "19" [1]=>    string(2) "92" [2]=> string(2) "27" [3]=> string(2) "55" [4]=> string(2) "56" [5]=> string(2) "57" [6]=> string(4) "1409" [7]=> string(4) "1384" [8]=> string(4) "1362" [9]=> string(4) "1345" [10]=> string(4) "1280" } 
 ["united states"]=> array(5886) { [0]=> string(2) "72" [1]=> string(2) "81" [2]=> string(2) "89" [3]=> string(2) "90" [4]=> string(2) "92" [5]=> string(2) "21" [6]=> string(2) "23" [7]=> string(2) "27" [8]=> string(2) "32" [9]=> string(2) "47" [10]=> string(2) "55" }
如何计算数组键(名称)中出现唯一值(数字)的次数

因此,如果55分同时出现在“巴拉克·奥巴马”和“美国”中,那么将获得2分


理想情况下,我只希望保留出现在一个或多个键中的值,但我可以在至少获得值后处理这些值。

在多维数组中迭代如下:

<?php
$data = array(
    'barack_obama' => array('19', '92', '27', '55', '57', '1409', '1384', '1362', '1345', '1280'),
    'united_states' => array('72', '81', '89', '90', '92', '21', '23', '27', '32', '47', '55'),
);

$aggregator = [];
foreach (array_keys($data) as $i) {
    for ($j = 0, $entryCount = count($data[$i]); $j < $entryCount; $j++) {
        $index = $data[$i][$j];
        $aggregator[$index] = isset($aggregator[$index]) ? $aggregator[$index] + 1 : 1;
    }
}
var_export($aggregator);

创建一个结果数组。然后迭代外部数组,在循环内部迭代子数组,并相应地递增结果数组:

$data = array(
    "barack obama"  =>  array(0,50,150,250,600,900,45,150,1050),
    "tom jones"     =>  array(80,120,150,75,250,80,1100,1900),
    "bob mugabe"    =>  array(50,120,10,0,250,900,600,45,1000,1010),
);    

$results = array(); // create an empty array to store our results
foreach ( $data as $item ): // loop the outer array
    foreach ( $item as $key => $value ): // loop the inner array
        if ( array_key_exists($value,$results) ){ // check if value is already in results, if not set to 1, otherwise increment
            $results[$value] = $results[$value] + 1;
        } else { 
            $results[$value] = 1;
        }

    endforeach;
endforeach;

// show our results array
print "<pre>";
print_r($results);
$data=array(
“巴拉克·奥巴马”=>数组(0,5015050600900,451501050),
“tom jones”=>阵列(80120150,75250,80111001900),
“bob mugabe”=>阵列(50120,10,0250900600,4510001010),
);    
$results=array();//创建一个空数组来存储结果
foreach($data as$item)://循环外部数组
foreach($key=>$value的项)://循环内部数组
如果(array_key_exists($value,$results)){//检查值是否已经在results中,如果没有设置为1,否则递增
$results[$value]=$results[$value]+1;
}否则{
$results[$value]=1;
}
endforeach;
endforeach;
//显示我们的结果数组
打印“”;
打印(结果);

谢谢-非常好!
$data = array(
    "barack obama"  =>  array(0,50,150,250,600,900,45,150,1050),
    "tom jones"     =>  array(80,120,150,75,250,80,1100,1900),
    "bob mugabe"    =>  array(50,120,10,0,250,900,600,45,1000,1010),
);    

$results = array(); // create an empty array to store our results
foreach ( $data as $item ): // loop the outer array
    foreach ( $item as $key => $value ): // loop the inner array
        if ( array_key_exists($value,$results) ){ // check if value is already in results, if not set to 1, otherwise increment
            $results[$value] = $results[$value] + 1;
        } else { 
            $results[$value] = 1;
        }

    endforeach;
endforeach;

// show our results array
print "<pre>";
print_r($results);