为了账号安全,请及时绑定邮箱和手机立即绑定

根据搜索条件制作一个新的数组形式的多维数组

根据搜索条件制作一个新的数组形式的多维数组

PHP
ibeautiful 2022-09-03 17:33:14
我有一个多维数组。我想搜索值(用户名IE jon)并计算特定用户名的总“YES”。IE 根据下面的数组 Andew 重复三次索引 1,3,4,其值为“YES”,因此 Andrew 的总“YES”计数值 = 3Jon 重复两次,但其值为“NO”,因此其值为 = 0Array(    [0] => Array        (            [0] => Jon            [1] => NO        )    [1] => Array        (            [0] => Andew            [1] => NO        )    [2] => Array        (            [0] => Walid            [1] => YES        )    [3] => Array        (            [0] => Andew            [1] => YES        )    [4] => Array        (            [0] => Andew            [1] => YES        )    [5] => Array        (            [0] => Jon            [1] => NO        )    [6] => Array        (            [0] => Andew            [1] => YES        ))我想让用户作为键和值 = 计算“是”的总数。输出Array(john => 0,Andew => 3Walid => 1)任何人,请建议一个可能的解决方案?
查看完整描述

3 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

您可以使用array_reduce:


$stats = array_reduce($array, static function ($stats, $entry) {

  $stats[$entry[0]] = ($stats[$entry[0]] ?? 0) + ($entry[1] === 'YES' ? 1 : 0);

  return $stats;

});

这将建立一个数组,将其初始值设置为 0,并且只要找到 a,就会将其递增 1。$statsYES


演示:https://3v4l.org/NmZ7G


查看完整回答
反对 回复 2022-09-03
?
holdtom

TA贡献1805条经验 获得超10个赞

如果您只需要“YES”的计数,则下面的计数将输出计数。


$count_array = [];


foreach($array as $values){


    if(!isset($count_array[$values[0]])){


        $count_array[$values[0]] = 0;

     } 


    if($values[1] === 'YES'){


       $count_array[$values[0]] ++; 

    }       

}


print_r($count_array);


查看完整回答
反对 回复 2022-09-03
?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

(与@Jeto array_reduce没有什么不同。


一个简单的前言:


<?php


$data =

[

    ['Brian', 'YES'],

    ['Brian', 'YES'],

    ['Charles', 'NO'],

    ['Charles', 'YES'],

    ['Nicola', 'NO']

];


foreach($data as list($name, $yes_no))

    $yes_counts[$name] = ($yes_counts[$name] ?? 0) + (int) ($yes_no === 'YES');


var_export($yes_counts);

输出:


array (

    'Brian' => 2,

    'Charles' => 1,

    'Nicola' => 0,

  )


查看完整回答
反对 回复 2022-09-03
  • 3 回答
  • 0 关注
  • 86 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信