PHP 数组重复数据计数

标签 php

我在 PHP 数组中有标题和语言数据。我需要显示重复的标题计数。请检查下面的数组格式。

Array ( 
  [0] => Array ( [title] => My_title1 [language] => English ) 
  [1] => Array ( [title] => My_title1 [language] => English ) 
  [2] => Array ( [title] => My_title2 [language] => Japanese ) 
) 

我需要以以下格式显示数据。

Title      Language   Count
My_title1  English    2
My_title2  Japanese   1

我尝试了以下代码

$count = array_count_values(array_map(
function($item) {
    return $item['title'];
}, $testArray));
print_r($count);

但我只得到标题计数。

Array ( [My_title1] => 2 [My_title2] => 1  ) 

如何显示如下格式?

Title      Language   Count
My_title1  English    2
My_title2  Japanese   1

最佳答案

例如,您可以这样做:

<?php

$testArray = array ( 
  0 => Array ( 'title' => 'My_title1', 'language' => 'English' ), 
  1 => Array ( 'title' => 'My_title1', 'language' => 'English' ), 
  2 => Array ( 'title' => 'My_title2', 'language' => 'Japanese' ), 
); 

$count = array_count_values(array_map(
function($item) {
    return $item['title'].'#'.$item['language'];
}, $testArray));

$outArray = array();

foreach ($count as $k => $v) {
    $k = explode('#', $k);
    $record['Title'] = $k[0];
    $record['Language'] = $k[1];
    $record['Count'] = $v;

    $outArray[] = $record;
}

var_dump($outArray);

当然你需要使用标题和语言中不会使用的字符,可能#就足够了

关于PHP 数组重复数据计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24818165/

相关文章:

php - 使用 Zend_Http_Client 时出现内容类型错误

php - 在 Codeigniter View 中加载数据

php - mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows 等...期望参数 1 是资源

php - Doctrine 通过魔法查找空值

php - 如何在laravel中写套接字服务器?

javascript - 我如何在 javascript 中包含这些节点的循环

php mail() 无法连接,但 telnet 可以

javascript - 如何在同一页面进行登录和注销?

javascript - 如何使用 javascript 和 bootstrap 表对多个表列进行搜索?

php - 如何按设定的时间间隔重新解析 XML 文档?