2017-04-18 1 views
0

Nach dem Array ist, und ich will von zählen, wenn productname ist PowerwallGet Anzahl der Array-Wert ist Powerwall

Array 
    (
     [0] => Array 
      (
       [user] => 58cb6fb8bf3c3600043ec1f2 
       [company] => tesla 
       [product] => Array 
        (
         [name] => Powerwall 
         [category] => product 
        ) 

      ) 

     [1] => Array 
      (
       [user] => 58cb6fb8bf3c3600043ec1f2 
       [company] => tesla 
       [product] => Array 
        (
         [name] => Powerwall 
         [category] => product 
        ) 

      ) 

     [2] => Array 
      (
       [user] => 58cb6fb8bf3c3600043ec1f2 
       [company] => tesla 
       [product] => Array 
        (
         [name] => Powerwall 
         [category] => product 
        ) 

      ) 

     [3] => Array 
      (
       [user] => 58cb6fb8bf3c3600043ec1f2 
       [company] => tesla 
       [product] => Array 
        (
         [name] => Powerwall 
         [category] => product 
        ) 

      ) 

     [4] => Array 
      (
       [user] => 58cb6fb8bf3c3600043ec1f2 
       [company] => tesla 
       [product] => Array 
        (
         [name] => Powerwall 
         [category] => product 
        ) 

      ) 

     [5] => Array 
      (
       [user] => 58cb6fb8bf3c3600043ec1f2 
       [company] => tesla 
       [product] => Array 
        (
         [name] => Powerwall 
         [category] => product 
        ) 

      ) 

     [6] => Array 
      (
       [user] => 58cb6fb8bf3c3600043ec1f2 
       [company] => tesla 
       [product] => Array 
        (
         [name] => Powerwall 
         [category] => product 
        ) 

      ) 

     [7] => Array 
      (
       [user] => 58cb6fb8bf3c3600043ec1f2 
       [company] => tesla 
       [product] => Array 
        (
         [name] => Powerwall 
         [category] => product 
        ) 

      ) 

     [8] => Array 
      (
       [user] => 58cb6fb8bf3c3600043ec1f2 
       [company] => tesla 
       [product] => Array 
        (
         [name] => Model S 
         [category] => product 
        ) 

      ) 

    ) 

Ausgabe benötigt 8 for Powerwall and 1 for Model S

+0

Sie meinen, Sie wollen die Nr. Zählen. von Zeiten erscheint Powerwall Produktname? –

+0

Was hast du probiert? – C2486

+0

ja @ObjectManipulator –

Antwort

1

Sie müssen Ihr Array durchlaufen und den Zähler $count jedes Mal inkrementieren, wenn Powerwall gefunden wird.

$count = 0; 
foreach ($array as $arr) { 
    if ($arr['product']['name'] == 'Powerwall') { 
     $count++; 
    } 
} 
echo "Powerwall count = " . $count; 
+0

Seine Arbeit @Object Manipulator, Vielen Dank für die Hilfe! –

0

Verwenden Sie einfach array_column und array_count_values zum Zählen der keine

Try this code snippet here

<?php 
$dataarray=Array 
    (
     0 => Array 
      (
       "user" => "58cb6fb8bf3c3600043ec1f2", 
       "company" => "tesla", 
       "product" => Array 
        (
         "name" => "Powerwall", 
         "category" => "product", 
        ) 

      ), 

     1 => Array 
      (
       "user" => "58cb6fb8bf3c3600043ec1f2", 
       "company" => "tesla", 
       "product" => array 
        (
         "name" => "Powerwall", 
         "category" => "product", 
        ) 

      ), 

     2 => array 
      (
       "user" => "58cb6fb8bf3c3600043ec1f2", 
       "company" => "tesla", 
       "product" => array 
        (
         "name" => "Powerwall", 
         "category" => "product", 
        ) 

      ), 

     3 => array 
      (
       "user" => "58cb6fb8bf3c3600043ec1f2", 
       "company" => "tesla", 
       "product" => array 
        (
         "name" => "Powerwall", 
         "category" => "product", 
        ) 

      ), 

     4 => array 
      (
       "user" => "58cb6fb8bf3c3600043ec1f2", 
       "company" => "tesla", 
       "product" => array 
        (
         "name" => "Powerwall", 
         "category" => "product", 
        ) 

      ), 

     5 => array 
      (
       "user" => "58cb6fb8bf3c3600043ec1f2", 
       "company" => "tesla", 
       "product" => array 
        (
         "name" => "Powerwall", 
         "category" => "product", 
        ) 

      ), 

     6 => array 
      (
       "user" => "58cb6fb8bf3c3600043ec1f2", 
       "company" => "tesla", 
       "product" => array 
        (
         "name" => "Powerwall", 
         "category" => "product", 
        ) 

      ), 

     7 => array 
      (
       "user" => "58cb6fb8bf3c3600043ec1f2", 
       "company" => "tesla", 
       "product" => array 
        (
         "name" => "Powerwall", 
         "category" => "product", 
        ) 

      ), 

     8 => array 
      (
       "user" => "58cb6fb8bf3c3600043ec1f2", 
       "company" => "tesla", 
       "product" => array 
        (
         "name" => "Model S", 
         "category" => "product", 
        ) 

      ), 

    ); 
$result= array_count_values(array_column(array_column($dataarray,"product"),"name")); 
echo "Count: ".$result["Powerwall"]; 
+0

Dies ist in Geige arbeiten, aber nicht in meinem Code, den ich erhalte diese Störung array_count_values ​​(): nur STRING zählen und Integer-Werte –

+0

können Sie kopieren meinen Code und Kontrolle fügen könnten Sie etwas vermissen werden –

+0

ich Ich habe deinen Code mehr als dreimal kopiert, aber trotzdem bekomme ich einen Fehler, danke, Bruder, für die Hilfe. –

Verwandte Themen