【问题标题】:how can i count distinct values associative array in php我如何在php中计算不同的值关联数组
【发布时间】:2011-07-21 08:13:17
【问题描述】:

我有 F8 之类的 json 文件,我想在一个数组中存储和计算类别,即 php 中的简单数组

函数 array_icount_values($array) { $rtarray = 数组(); foreach($array as $value) $rtarray[strtolower($value)]++; 返回 $rtarray; $ar = array('red', 'green', 'blue', 'red', 'red', 'red', 'blue', 'blue', 'green'); //$ar = array_icount_values($re);

它的输出将是

[红色]=>4 [蓝色]=>3 [绿色]=>2

我想要这个文件的相同结果

{ “数据”: [ { “名称”:“指环王三部曲(官方页面)”, “类别”:“电影” }, { “名称”:“抢夺”, “类别”:“电影” }, { "name": "社交网络电影", “类别”:“电影” }, { "name": "疤面煞星", “类别”:“公众人物” }, {“名称”:“约翰尼·德普”, “类别”:“演员/导演” }, { "name": "西部往事", “类别”:“公众人物” }, { "name": "守护者传说:加胡尔的猫头鹰", “类别”:“公众人物” }, { "name": "美国往事", “类别”:“公众人物” }, {“名称”:“布奇卡西迪和圣丹斯小子”, “类别”:“公众人物” }, {“名称”:“骨折”, “类别”:“公众人物” }, { "name": "Invictus", “类别”:“公众人物” }, { "name": "骄傲与荣耀", “类别”:“公众人物” } ] }

注意我只想要类别计数,即

[电影]=>5 [电视节目]=>4 等等
我使用了这段代码
function array_icount_values($array) {
    $ret_ar=数组();
    foreach($array['data'] as $key=>$val)
    {
        print_r(array_count_values($val));
     }}
$string = file_get_contents("likes.json");
$json_a=json_decode($string,true);
$re=array_icount_values($json_a);
但这给出了奇怪的结果。

【问题讨论】:

  • 解码 json + foreach($array as $value) $rtarray[strtolower($value['category'])]++;

标签: php facebook


【解决方案1】:

那里的文本是 JSON。只需将其解码并使用与您之前提供的功能相同的方法来计算类别。看看这个:http://www.php.net/manual/en/function.json-decode.php

希望我能帮上忙,一切顺利……

乐:

$arr=json_decode($str);
foreach($arr['data'] as $value){
    $categCount[$value['category']]++;
}

var_dump($categCount);// 应该给你类别计数

【讨论】:

  • 我解码 json 文件并应用该方法但没有得到我的结果
  • 应用方法(如ideea),而不是功能:)。解码后你应该得到一个像 $array['data'] 这样的数组,我会在一秒钟内给你上面的其余部分
  • 使用 $value['category'] 作为索引会出现“未定义索引”异常,解决此问题的正确方法是什么? :)
  • 看在上帝的爱上 Dane411 :)),替换 $categCount[$value['category']]++; with (!empty($categCount[$value['category']])?$categCount[$value['category']]++:$categCount[$value['category']]=1);
猜你喜欢
  • 1970-01-01
  • 2021-03-23
  • 1970-01-01
  • 1970-01-01
  • 2013-02-04
  • 2018-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多