2017-05-23 12 views
0

Ich versuche, den größten numerischen Wert im Zusammenhang mit der 'reduzierten' Array unten zu geben. Einfach genug, wenn es einen Wert gibt, aber viele haben zwei - wie unten. Ich benutzeSo extrahieren Sie Werte aus PHP-Array

$reduced_array = $data['rates'][1]['rates'][0]; 

aber dies funktioniert nur bei der Rückgabe des ersten Wertes. Ich brauche nur den höchsten Wert however- so darunter zurückzukehren wäre 8. wäre so etwas wie

if(count($data['rates'][1]['rates']) > 2) { 
     ***return largest value here*** 

Arbeit? Ich bin mir einfach nicht sicher, wie ich die Asterisk-Aufgabe ausführen soll - vielleicht eine for-Schleife? Hier ist das Array.

Array 
(
[rates] => Array 
    (
     [0] => Array 
      (
       [name] => Super Reduced 
       [rates] => Array 
        (
        ) 

      ) 

     [1] => Array 
      (
       [name] => Reduced 
       [rates] => Array 
        (
         [0] => 5 
         [1] => 8 
        ) 

      ) 

     [2] => Array 
      (
       [name] => Standard 
       [rates] => Array 
        (
         [0] => 23 
        ) 

      ) 

     [3] => Array 
      (
       [name] => Increased 
       [rates] => Array 
        (
        ) 

      ) 

     [4] => Array 
      (
       [name] => Parking 
       [rates] => Array 
        (
        ) 

      ) 

    ) 

[disclaimer] => Rates data is based on information published by the European Commission, updated 1st January 2017. 
) 

Vielen Dank für jede Hilfe

+0

einfach das 'rates' Array greifen, [Sortieren] (http://php.net/manual/en/ array.sorting.php) es in absteigender Reihenfolge, dann schnappen Sie sich den ersten Wert. – domsson

Antwort

1

Sie max() dafür verwenden können.

$array = array(
    "rates" => array(
     array(
      "name" => "Super Reduced", 
      "rates" => array() 
     ), 
     array(
      "name" => "Reduced", 
      "rates" => array(
       5, 
       8 
      ) 
     ) 
    ) 
); 

echo max($array["rates"][1]["rates"]); // 8 
+0

ah danke, sollte das php-Handbuch überprüft haben, sorry, habe schon lange nicht mehr programmiert. –

0

einfachste Lösung wird Beispiel auf innere Anordnung von max werden:

if(!empty($data['rates'][1]['rates'])) { 
    $maxvalue = max($data['rates'][1]['rates']); 
}