PHP数组重复数据计数
我有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] =
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可能是英文等等。谢谢你马金·纳比亚莱克。