php - PHP Array重复数据计数

原文 标签 php

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

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 - 为什么具有相同编码的字符串在MySQL和HTML上呈现的方式不同?

php - codeigniter选择结果数组

php - 将RESTful API限制为仅我的应用程序

javascript - 日历未显示在我自定义的magento2主题中,但以亮度显示(默认)

php - 可捕获的致命错误:无法将类PDOStatement的对象转换为字符串pdo php sql [重复]

php - PDO陈述不明确-php?

php - 在PHP SESSION中缓存数据,还是每次从db查询?

php - 如何在电子邮件中添加嵌入视频?

php - PHP - 类中的catchall方法

php - 有数组时如何进行查询