I've been working on this for a couple days now... and still haven't been able to achieve my desired results. Any help would on this would be greatly appreciated... thank you in advance.I have a multi-array stored in $log, which displays like this when you print_r($log): Array ( [0] => Array ( [0] => Red [1] => Steel ) [1] => Array ( [0] => Red [1] => Wood ) [2] => Array ( [0] => Blue [1] => Wood ) )Currently I have this:$counts = $log;foreach ($log as $value) { foreach ($value as $k => $v) { if (!isset($counts[$k])) $counts[$k] = array(); if (!isset($counts[$k][$v])) $counts[$k][$v] = 0; $counts[$k][$v] += 1; }}foreach ($counts as $k => $v1) { foreach ($v1 as $v => $count) { echo "$v => $count <br />"; }}Which Displays:0 => Red 1 => Steel Red => 2 Blue => 1 0 => Red 1 => Wood Steel => 1 Wood => 2 0 => Blue 1 => Wood But I'm really looking to have an end result of:<h2>Colors</h2>Red => 2Blue => 1<h2>Materials</h2>Steel => 1Wood => 2 解决方案 If you are using PHP >= 5.5, you can use array_column(), in conjunction with array_count_values():$colors = array_count_values(array_column($log, 0));$materials = array_count_values(array_column($log, 1));See demoOr, if you're not using PHP >= 5.5, this will work in PHP 4, 5:$colors = $materials = array();foreach ($log as $a){ $colors[] = $a[0]; $materials[] = $a[1];}$colors = array_count_values($colors);$materials = array_count_values($materials);See demo 2Click here for sample use case that will work with either method. 这篇关于PHP-计算二维数组中的重复值,然后仅显示具有计数的唯一值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!
10-19 01:07