Php 计算数组中有多少重复和唯一的值

Php 计算数组中有多少重复和唯一的值,php,arrays,Php,Arrays,我有这样一个数组: array (size=6) 0 => array (size=1) 'test' => string 'AQHRmVBW7uTgObjnzkqrp' (length=30) 1 => array (size=1) 'test' => string 'AQHRmU8HooJPnCKUfkGLD' (length=30) 2 => array (size=1) 'test' =

我有这样一个数组:

array (size=6)
0 => 
     array (size=1)

     'test' => string 'AQHRmVBW7uTgObjnzkqrp' (length=30)  

1 =>  array (size=1)
     'test' => string 'AQHRmU8HooJPnCKUfkGLD' (length=30)   
2 => 
     array (size=1)

     'test' => string 'AQHRmU7+BdwM7pmpzEKew' (length=30)   
3 => 
     array (size=1)
     'test' => string 'AQHRmU74sTU6YP4GsEee8' (length=30)   
4 => 
     array (size=1)
     'test' => string 'AQHRmOqQAoHUgxj7T0et8' (length=30)   
5 => 
     array (size=1)
     'test' => string 'AQHRmOqQAoHUgxj7T0et8' (length=30)
$flatten = array_merge($subArrayOne, $subArrayTwo /* , ... */);
现在我想计算数组中有多少个偶数值和多少个非偶数值

正如您所看到的,最后两个结果在数组中是相同的,其他4个结果都是唯一的。所以我希望我的最终结果是:

even: 2
uneven: 4
$results=array();
foreach($key=>$value的数组)
{
如果(!isset($results[$value['test']])$results[$value['test']]]=0;
$results[$value['test']]++;
}
//平分
美元=0;
$偶数=0;
foreach($结果为$key=>$count)
{
如果($count>1)$偶数+=$count;
else$不均匀++;
}
回声“偶数:”.$偶数。“
”; 回音“不均匀:”.$UNIGRANCE.
”;
$results=array();
foreach($key=>$value的数组)
{
如果(!isset($results[$value['test']])$results[$value['test']]]=0;
$results[$value['test']]++;
}
//平分
美元=0;
$偶数=0;
foreach($结果为$key=>$count)
{
如果($count>1)$偶数+=$count;
else$不均匀++;
}
回声“偶数:”.$偶数。“
”; 回音“不均匀:”.$UNIGRANCE.
”;
这是我们的阵列:

$testArr = array(
    array('test' => 'AQHRmVBW7uTgObjnzkqrp'),
    array('test' => 'AQHRmU8HooJPnCKUfkGLD'),
    array('test' => 'AQHRmU7+BdwM7pmpzEKew'),
    array('test' => 'AQHRmU74sTU6YP4GsEee8'),
    array('test' => 'AQHRmOqQAoHUgxj7T0et8'),
    array('test' => 'AQHRmOqQAoHUgxj7T0et8'),
);
现在,让我们来了解一些fn:

//First, let's flatten it
$flattenArr = array_column($testArr, 'test');
//And let's count values
$valsArr = array_count_values($flattenArr);

//Now filter elements that have only one occurrence
$unevenArr = array_filter($valsArr, function($val) {
    return $val==1;
});

//So now we can simply count this array to get "uneven" count...
$uneven = count($unevenArr);
//...and the rest is even
$even = count($testArr) - $uneven;
让我们看看我们有什么:

echo "Even: {$even}<br/>"; //2
echo "Uneven {$uneven}";   //4
echo“偶数:{$Even}
”//2. 回声“不均匀{$不均匀}”//4.
这是我们的阵列:

$testArr = array(
    array('test' => 'AQHRmVBW7uTgObjnzkqrp'),
    array('test' => 'AQHRmU8HooJPnCKUfkGLD'),
    array('test' => 'AQHRmU7+BdwM7pmpzEKew'),
    array('test' => 'AQHRmU74sTU6YP4GsEee8'),
    array('test' => 'AQHRmOqQAoHUgxj7T0et8'),
    array('test' => 'AQHRmOqQAoHUgxj7T0et8'),
);
现在,让我们来了解一些fn:

//First, let's flatten it
$flattenArr = array_column($testArr, 'test');
//And let's count values
$valsArr = array_count_values($flattenArr);

//Now filter elements that have only one occurrence
$unevenArr = array_filter($valsArr, function($val) {
    return $val==1;
});

//So now we can simply count this array to get "uneven" count...
$uneven = count($unevenArr);
//...and the rest is even
$even = count($testArr) - $uneven;
让我们看看我们有什么:

echo "Even: {$even}<br/>"; //2
echo "Uneven {$uneven}";   //4
echo“偶数:{$Even}
”//2. 回声“不均匀{$不均匀}”//4.
首先,您需要通过调用每个子数组作为参数,将数组展平为一维数组。想象一下:

array (size=6)
0 => 
     array (size=1)

     'test' => string 'AQHRmVBW7uTgObjnzkqrp' (length=30)  

1 =>  array (size=1)
     'test' => string 'AQHRmU8HooJPnCKUfkGLD' (length=30)   
2 => 
     array (size=1)

     'test' => string 'AQHRmU7+BdwM7pmpzEKew' (length=30)   
3 => 
     array (size=1)
     'test' => string 'AQHRmU74sTU6YP4GsEee8' (length=30)   
4 => 
     array (size=1)
     'test' => string 'AQHRmOqQAoHUgxj7T0et8' (length=30)   
5 => 
     array (size=1)
     'test' => string 'AQHRmOqQAoHUgxj7T0et8' (length=30)
$flatten = array_merge($subArrayOne, $subArrayTwo /* , ... */);
然后,您可以使用计算数组中的所有值,循环该数组并创建预期的输出

代码


首先,需要通过调用每个子数组作为参数,将数组展平为一维数组。想象一下:

array (size=6)
0 => 
     array (size=1)

     'test' => string 'AQHRmVBW7uTgObjnzkqrp' (length=30)  

1 =>  array (size=1)
     'test' => string 'AQHRmU8HooJPnCKUfkGLD' (length=30)   
2 => 
     array (size=1)

     'test' => string 'AQHRmU7+BdwM7pmpzEKew' (length=30)   
3 => 
     array (size=1)
     'test' => string 'AQHRmU74sTU6YP4GsEee8' (length=30)   
4 => 
     array (size=1)
     'test' => string 'AQHRmOqQAoHUgxj7T0et8' (length=30)   
5 => 
     array (size=1)
     'test' => string 'AQHRmOqQAoHUgxj7T0et8' (length=30)
$flatten = array_merge($subArrayOne, $subArrayTwo /* , ... */);
然后,您可以使用计算数组中的所有值,循环该数组并创建预期的输出

代码


首先,我将数组展平为一维数组,然后检查每个唯一值,并检查它是否在数组中再次存在。我采取此步骤进行展平,其中上面的数组是$org_数组->$flatarray=(array_values($org_数组));var_转储($flatarray);首先,我将数组展平为一维数组,然后检查每个唯一值,并检查它是否在数组中再次存在。我采取此步骤进行展平,其中上面的数组是$org_数组->$flatarray=(array_values($org_数组));var_转储($flatarray);它显示偶数1(假)和不均匀4(真)。我认为它显示了1,因为代码测试一个结果是否看起来像另一个结果(可能是吗?)。不管怎样,谢谢你的帮助。它显示偶数1(假)和不均匀4(真)。我认为它显示了1,因为代码测试一个结果是否看起来像另一个结果(可能是吗?)。不管怎样,谢谢你的帮助。