在多维数组PHP中计算文档频率
我有一个这样的数组在多维数组PHP中计算文档频率,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我有一个这样的数组 Array ( [0] => Array ( [id_doc] => 1 [term] => curi ) [1] => Array ( [id_doc] => 1 [term] => tidur ) [2] => Array ( [id_doc] => 1 [term] => kamar ) [3] => Array ( [id_doc] =
Array (
[0] => Array ( [id_doc] => 1 [term] => curi )
[1] => Array ( [id_doc] => 1 [term] => tidur )
[2] => Array ( [id_doc] => 1 [term] => kamar )
[3] => Array ( [id_doc] => 2 [term] => curi )
[4] => Array ( [id_doc] => 2 [term] => cela )
[5] => Array ( [id_doc] => 2 [term] => hukum )
[6] => Array ( [id_doc] => 3 [term] => nyanyi )
[7] => Array ( [id_doc] => 3 [term] => dangdut )
[8] => Array ( [id_doc] => 3 [term] => curi )
)
如何从这些文档上的术语获取文档频率计数。我想要这样的输出
Array (
[0] => Array ( [id_doc] => 1 [term] => curi [doc_frequency] => 3 )
[1] => Array ( [id_doc] => 1 [term] => tidur [doc_frequency] => 1 )
[2] => Array ( [id_doc] => 1 [term] => kamar [doc_frequency] => 1 )
[3] => Array ( [id_doc] => 2 [term] => curi [doc_frequency] => 3 )
[4] => Array ( [id_doc] => 2 [term] => cela [doc_frequency] => 1 )
[5] => Array ( [id_doc] => 2 [term] => hukum [doc_frequency] => 1 )
[6] => Array ( [id_doc] => 3 [term] => nyanyi [doc_frequency] => 1 )
[7] => Array ( [id_doc] => 3 [term] => dangdut [doc_frequency] => 1 )
[8] => Array ( [id_doc] => 3 [term] => curi [doc_frequency] => 3 )
)
所以术语“居里”有3个文档频率,因为它出现在3个文档上。
我试过这个
$count_df = array_count_values(array_map(function($item) {
return $item['term'];
}, $dokumen_frek));
print_r($count_df);
但结果是
Array (
[curi] => 3
[tidur] => 1
[kamar] => 1
[cela] => 1
[hukum] => 1
[nyanyi] => 1
[dangdut] => 1
)使用函数
StackOverflow期待您的支持,我们也希望您的支持。请更新您的问题,以显示您已在某个应用程序中尝试过的内容。有关更多信息,请参阅,并使用:)使用关联数组,其键为文档名称,值为频率。循环遍历数组,并使用当前名称增加元素的频率。完成后,您可以将频率添加到原始阵列。检查此项
$terms = array_count_values(array_column($arr, 'term'));
foreach($arr as &$x) {
$x['doc_frequency'] = $terms[$x['term']];
}