PHP größte diffenrenz

Hallo,

wie stelle ich es am besten an das php folgendes macht:

$array1=(100,150,300,450); $array2=(90,180,260,660);

dann der wert von array2 von array1 abziehen (wo der key kleich ist) und dann den key auswerfen wo die größte abweichung ins positive vorhanden ist.

$array3=array();
foreach ($array1 as $key => $vallue) {
    $array3[$key]=$array1[$key]-$array2[$key];
}
arsort($array3);

XD bin ja schon fast selber draufgekommen

nun nurnoch den 1. eintrag des array (inhalt und key) ausgeben. Wie kann ich das machen?
(außer mit einer foreach schleife wo nach dem 1. durchlauf beendet wird)

Wenn du weißt, daß die Differenz sagen wir mal garantiert größer
als -1E6 ist, brauchst du gar kein weiteres array:

$amax=-1E6;
$kmax='keins';
foreach ($array1 as $key => $value) {
    $diff=$array1[$key]-$array2[$key];
    if ($diff > $amax) {
      $amax=$diff;
      $kmax=$key;
    }
}

if ($amax ==-1E6) {
echo "Maximale Differenz nicht größer als -1E6.";
} else { 
echo "$kmax: $amax";
}

Genaugenommen müßtest du auch noch sicherstellen, daß wirklich
für jedes $key von array1 auch eines in array2 steckt …

<?php

$diff = array_diff($array1, $array2);
rsort($diff)

echo $diff[0];

Soweit ich das Handbuch verstanden habe, vergleicht array_diff
die arrays selbst und zieht nicht die Werte voneinander ab …

Wenn du das erste Array-Element samt Key ausgeben willst, kannst du das so machen:

// Setze den Zeiger auf das erste Array-Element reset($array); // Key ausgeben echo 'key: '. key($array); // Wert ausgeben echo 'value: '. current($array);

danke widiland
sowas habe ich gesucht