在多维中计算重复的“usuario_cidade”

时间:2015-12-30 05:28:15

标签: php multidimensional-array count

请帮我一个代码。我有这个多维数组,需要将 Array ( [52] => Array ( [0] => stdClass Object ( [funcionario_id] => 52 [usuario_cidade] => Cidade_1 ) [1] => stdClass Object ( [funcionario_id] => 52 [usuario_cidade] => Cidade_1 ) [2] => stdClass Object ( [funcionario_id] => 52 [usuario_cidade] => Cidade_2 ) [3] => stdClass Object ( [funcionario_id] => 52 [usuario_cidade] => Cidade_3 ) [4] => stdClass Object ( [funcionario_id] => 52 [usuario_cidade] => Cidade_2 ) ) ) 的值计算为相同的值,如下所示:

  

数组52 =(2)Cidade_1,(2)Cidade_2,(1)Cidade_3

ActiveJob

4 个答案:

答案 0 :(得分:1)

试试这段代码:

//Create object array format as per question scenario for testing...
$arrObject1 = new stdClass();
$arrObject1->funcionario_id = '52';
$arrObject1->usuario_cidade = 'Cidade_1';

$arrObject2 = new stdClass();
$arrObject2->funcionario_id = '52';
$arrObject2->usuario_cidade = 'Cidade_1';

$arrObject3 = new stdClass();
$arrObject3->funcionario_id = '52';
$arrObject3->usuario_cidade = 'Cidade_2';

$arrObject4 = new stdClass();
$arrObject4->funcionario_id = '52';
$arrObject4->usuario_cidade = 'Cidade_3';

$arrObject5 = new stdClass();
$arrObject5->funcionario_id = '52';
$arrObject5->usuario_cidade = 'Cidade_2';


//Finalize array...
$varArray = array('52' => array(
    $arrObject1, $arrObject2, $arrObject3, $arrObject4, $arrObject5
));


$arrResult = array();
//Loop until main array...
foreach($varArray AS $arrKey => $arrObjVal){
        //Loop for object values...
        foreach($arrObjVal AS $ocjKey => $objVal){
            //Check for specific key(i.e. value of usuario_cidade) exist into result array...
            if(array_key_exists($objVal->usuario_cidade, $arrResult)){
                //Increment value if exist...
                $arrResult[$objVal->usuario_cidade] = $arrResult[$objVal->usuario_cidade] + 1;      
            }
            else {
                //Initialize value of result array...
                $arrResult[$objVal->usuario_cidade] = 1;
            }
        }


}

print('<pre>');
print_r($arrResult);
print('</pre>');

这将给出结果:

[Cidade_1] => 2
[Cidade_2] => 2
[Cidade_3] => 1

希望这对你有帮助!

答案 1 :(得分:0)

试试这个..

$your_array = array(); 
$usuario_cidade = array();
foreach ($your_array as $key => $values){
    foreach($values as $value){
        $usuario_cidade[$key][$value->usuario_cidade]=isset($usuario_cidade[$key][$value->usuario_cidade]) ? $usuario_cidade[$key][$value->usuario_cidade] : '0' + 1;
    }   
}
print_r($usuario_cidade);

答案 2 :(得分:0)

嘿,请仔细检查这段代码,并给出与给出条件相同的答案。

$arr = array();
$arr2 = array('funcionario_id' => 52,'usuario_cidade' => 'Cidade_1' );
$arr3 = array('funcionario_id' => 52,'usuario_cidade' => 'Cidade_1' );
$arr4 = array('funcionario_id' => 52,'usuario_cidade' => 'Cidade_2' );
$arr5 = array('funcionario_id' => 52,'usuario_cidade' => 'Cidade_3' );
$arr6 = array('funcionario_id' => 52,'usuario_cidade' => 'Cidade_2' );

$arr = [$arr2,$arr3,$arr4,$arr5,$arr6];
$cidaed = array('Cidade_1' => 0, 'Cidade_2' => 0 , 'Cidade_3' => 0 );
$count = 0;
//echo var_dump($arr);

foreach ($arr as $key => $value) {
    foreach ($value as $keys => $values) {
        if($keys == 'usuario_cidade')
        {
            $cidaed[$values] += 1;
        }
    }

}

echo var_dump($cidaed);

上面的答案将是。

array(3){[“Cidade_1”] =&gt; int(2)[“Cidade_2”] =&gt; int(2)[“Cidade_3”] =&gt; int(1)}

答案 3 :(得分:0)

请你检查一下。

        $main_array[52] = array(

         0 => array(
          'funcionario_id' => 52,
          'usuario_cidade' => 'Cidade_1'
         ),
         1 => array(
          'funcionario_id' => 52,
          'usuario_cidade' => 'Cidade_1'
         ),
         2 => array(
          'funcionario_id' => 52,
          'usuario_cidade' => 'Cidade_2'
         ),
         3 => array(
          'funcionario_id' => 52,
          'usuario_cidade' => 'Cidade_3'
         ),
         4 => array(
          'funcionario_id' => 52,
          'usuario_cidade' => 'Cidade_2'
         )

     );

     $check_array = array();
     $count_array = array();
     foreach ($main_array as $main){
       foreach($main as $data){
        if(in_array($data['usuario_cidade'], $check_array)){
         $count_array[$data['usuario_cidade']] = $count_array[$data['usuario_cidade']] + 1;
        }else{
         array_push($check_array,$data['usuario_cidade']);
         $count_array[$data['usuario_cidade']] = 1;

        }
       } 
     }

    foreach($count_array as $key => $value){
     echo $key.'='.$value.'<br />'; 
    }
      echo "<pre>"; print_r($count_array);