【问题标题】:How to properly use array_walk() function to count specific values in PHP?如何正确使用 array_walk() 函数来计算 PHP 中的特定值?
【发布时间】:2017-02-01 21:45:01
【问题描述】:

这个问题我睡不好。我找不到其他解决方案。我已经尝试了一些功能,但我无法使用这些功能达到理想的效果。所以一个人告诉我使用array_walk()。是的,这个函数可以满足我的要求,但我不能或者我不知道如何正确地将它插入到我的代码中。

我的 PHP 代码:

$d=array();
foreach(range(0, 3) as $rs) {
    foreach(range(0, 5) as $c){

        //here is working php code to generate '$randomRs' by '$rs' and '$c' vars..

        $d['rs'.$rs]['c'.$c] = $randomRs;

    }
}

生成的 JSON 输出:

{
"rs0":{
   "c0":"pl",
   "c1":"wd",
   "c2":"wd",
   "c3":"pl",
   "c4":"bl"
},
"rs1":{
   "c0":"gr",
   "c1":"gr",
   "c2":"lk",
   "c3":"gr",
   "c4":"lk"
}
and so on...

我只需要一个简单的代码来计算该数组的特定值。 例如:我需要计算数组中有多少个“wd”和“lk”。 Guy 告诉我使用 array_walk(),但我对这些数组很陌生,我真的需要一些建议!

【问题讨论】:

  • 为什么重要的是你使用什么功能?
  • @miken32 我已经尝试过那个线程中的那些,但我需要按值搜索,而不是按键..
  • @jeroen 不知道。我需要的只是计算关键值。就是这样。他告诉我,我可以使用array_walk()
  • 算入整个数组还是分别算入每个子数组?

标签: php arrays json multidimensional-array


【解决方案1】:

在你的循环中使用:

$temp[] = $randomRs;

那么你就可以轻松数数了:

$count = array_count_values($temp);
echo $count['wd'];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-17
    相关资源
    最近更新 更多