Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP数组重复数据计数_Php - Fatal编程技术网

PHP数组重复数据计数

PHP数组重复数据计数,php,Php,我有PHP数组中的标题和语言数据。我需要显示重复的标题计数。请检查下面的数组格式 Array ( [0] => Array ( [title] => My_title1 [language] => English ) [1] => Array ( [title] => My_title1 [language] => English ) [2] => Array ( [title] => My_title2 [language] =

我有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
$array = array(
       0 => array ( 'title' => 'My_title1', 'language' => 'English'), 
       1 => array ( 'title' => 'My_title1', 'language' => 'English'), 
       2 => array ( 'title' => 'My_title2', 'language' => 'Japanese')

    );
    $final = array();

    foreach($array as $key =>$value)
    {
        $flag = 0;
        foreach($final as $key1 =>$value1)
        {

            if($array[$key]['title'] == $final[$key1]['title'])
            {
                $final[$key1]['count']++;
                $flag = 1;
            }

        }
        if($flag == 0)
        {
            $push = array('title' => $array[$key]['title'],'language' => $array[$key]['language'],'count' =>1);
            array_push($final,$push);
        }   
    }
echo "<pre>";print_r($final);

英语
日语
等是否应为字符串?或者您是否将它们定义为常量?英语和日语不是常量。语言是字符串。它将根据标题而有所不同。例:我的书名3可能是中文,我的书名4可能是英文等等。谢谢你马金·纳比亚莱克。