2016-06-14 3 views
0

Ich habe einen PHP-Array, das nach aussieht wie Sortierung:Drucken Sie die ersten n Werte eines sortierten assoziativen PHP-Arrays mit Zahlen und Gleitkommazahlen?

Array ([542] => 30 [588] => 29.77 [409] => 19.9 [237] => 19.47 [457] => 17.73 [410] => 15.86); 

Die tatsächliche Anordnung ist ziemlich lang. Anfangs wurden die Schlüssel sequentiell gesetzt wie 0, 1, 2 ... Dann sortierte ich das Array und nun sieht das Array wie das obige Array aus. Wenn ich versuchte, das erste Element zu drucken, wenn dieses sortierte Array das Echo $engagement[0] verwendet, habe ich den Wert 30 nicht erhalten. Um 30 zu bekommen, musste ich $engagement[542] verwenden. Aber ich habe keine Möglichkeit zu wissen, was der erste Schlüssel in diesem sortierten Array sein könnte. Wie kann ich die ersten n Schlüssel- und Wertepaare dieses sortierten Arrays drucken?

Lassen Sie mich wissen, wenn ich mit meiner Erklärung klarer sein muss. :)

+0

Sie brauchen, um einen Trick hatten, versuchen '$ Schlüssel = array_keys ($ Eingriff);' Schleife durch das '$ keys' und Zugang zum Haupt Array . Für 30 benutze einfach: $ engagement [$ keys [0]] ' –

+0

hast du' foreach' probiert? –

Antwort

1

Sie müssen array_slice() verwenden, um Ihr Array mit einer festen Länge zu schneiden und dann array_keys zu verwenden.

$length = 50; 
$start = 0; 
$new_arr = array_slice($engagement, $start, $length); 
$keys = array_keys($new_arr); 
foreach($keys as $key){ 
    echo $new_arr[$keys[$key]]; 
} 

Ohne die array_keys:

foreach($new_arr as $key => $value){ 
    echo $key." => ".$value; 
} 

Denken Sie daran, true zu verwenden, wenn Sie die nicht array_keys verwenden wie:

$new_arr = array_slice($engagement, $start, $length, true); 

Mehr über: array_slice

Wenn Sie das nicht wahr verwenden, wird der Scheiben-Array-Index zurückgesetzt und Sie verlieren die Schlüssel .

Updates:

Wie Sie nur für die Array-Schlüssel fragen, standardmäßig array_slice den Array-Schlüssel zurückgesetzt, wenn Sie erhalten wollen, dann müssen Sie als vierten Parameter von array_slice wahr verwenden.

$new_arr = array_slice($engagement, $start, $length, true); 
$keys = array_keys($new_arr); // here is the list of the keys 
+1

Danke Frayne. Was muss ich ändern, wenn ich die Schlüssel und nicht die Werte möchte? –

+0

einfach 'array_keys' gibt Ihnen die Schlüssel dieses Arrays. '$ keys = array_keys ($ new_arr);' –

+0

Das gab mir 0,1,2,3,4,5 ... :) –

0

so etwas wie dies versuchen ...

$test = array('29.58', '21.78', '56.258', '10.145', '98.23', '20', '78.32', '112', '5.64', '55.26'); 
asort($test); 

$count = 0; 
foreach($test as $key => $val) 
{ 
    if($count <=5) 
    { 
     echo " [".$key."] => ".$val."\t"; 
     $count+=1; 
    } 
} 
Verwandte Themen