【问题标题】:Determine which variable/field is used the most [duplicate]确定使用最多的变量/字段[重复]
【发布时间】:2015-06-26 22:26:08
【问题描述】:

如果我有一个具有以下结构的数组,我需要确定哪个 Description 被使用得最多。

因此,在这种情况下,您可以看到在第一组和第四组中使用了 Feline,因此 Description->Feline 将是答案,因为它使用得最多。如何在 PHP 中编写脚本以输出该答案?

所以,如果我在下面有一个名为 $stuff 的数组:

 Array (

 [1] => Array (
        [Title] => Cat
        [Description] => Feline
        [Age] => 7

        ) 

 [2] => Array (
        [Title] => Dog
        [Description] => Canine
        [Age] => 8

        )

 [3] =>
       Array (
        [Title] => Birdie
        [Description] => Winged Beast of the Air
        [Age] => Eternal
       )

 [4] =>  
       (     
        [Title] => Kitten
        [Description] => Feline
        [Age] => 1
       )

 )

我找到了这段代码:

 $c = array_count_values($stuff); 
 $val = array_search(max($c), $c);

但这行不通,因为我只需要计算描述字段,而不是所有字段。那么,我该如何进入并缩小或收紧它,以便我只计算并获得匹配描述的数量。

我的想法是尝试:

 $c = array_count_values($stuff['Description']); 
 $val = array_search(max($c), $c);

但这没有用。我还缺少其他东西吗?

【问题讨论】:

  • 什么是$stuff?那是你的阵列吗?
  • 是的。为清晰起见进行了编辑。

标签: php


【解决方案1】:

请检查以下内容:-

<?php
$stuff =  Array (
 '1' => Array (
        'Title' => 'Cat',
        'Description' => 'Feline',
        'Age' => 7

        ),
    '2' => Array (
        'Title' => 'Dog',
        'Description' => 'Caine',
        'Age' => 8

        ),
    '3' => Array (
        'Title' => 'Birdie',
        'Description' => 'Winged Beast of the Air',
        'Age' => 'Eternal'

        ),
 '4' => Array (     
        'Title' => 'Kitten',
        'Description' => 'Feline',
        'Age' => 1,
       )

 );


$description_count = array();
foreach ($stuff as $key=>$value) {
  // check and add to the description_count array
  if (isset($description_count[$value['Description']])) {
    $description_count[$value['Description']]++;
  }
  // if not exist then initialize 1
  else $description_count[$value['Description']] = 1;

 //in single line you can do it 
  $description_count[$value['Description']] = isset($description_count[$value['Description']]) ? $description_count[$value['Description']]++ : 1;
}
echo "<pre/>";print_r($description_count);

输出:- https://eval.in/388305

【讨论】:

  • 我无法理解你在问什么。?
  • 这是我更新后的 eval.in,您可以看到我遇到的同样问题。 eval.in/389079 感谢您回来查看。无论哪种方式,我仍然会投票给你的答案。我只是不知道如何跟进。
  • 你检查我的代码了吗?还是你自己写的?
  • 因为你有两个错误:- 1.$description_count = array();not defined before foreach。 2.foreach($stuff as $key =&gt; $var)必须是foreach($stuff as $key =&gt; $value)。谢谢。
  • 感谢您的补充。玩得开心。:):):)
猜你喜欢
  • 2019-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-01
  • 2013-01-09
  • 2013-05-13
  • 1970-01-01
相关资源
最近更新 更多