x-te elemente im Array anzeigen:
Mario
- php
0 Nicole0 Nicole
0 Tobias Kloth0 Mario
Hallo,
ich will die X-ten Elemente eines Arrays anzeigen.
Hier mein bisheriger Code:
$anz=10; // Anzahl der anzuzeigenden Elemente je Seite
$pos=2; // aktuelle Seite
$xx=0; // Counter-Variable
// Ein Array mit n Elementen, Die Schlüssel sind alphanummerisch
$arr = array(
"Hallo_a" => "Hallo1",
"Hallo_b" => "Hallo2",
"Hallo_c" => "Hallo3",
"Hallo_d" => "Hallo4",
...
"Hallo_x" => "Hallo24",
"Hallo_y" => "Hallo25",
"Hallo_z" => "Hallo26"
);
// Und hier meine bisherige Idee:
// Das komplette Array durchlaufen, befindet sich der Schlüssel nicht // im gewünschten Bereich, Schleife ohne Ausdruck fortsetzen.
foreach ($arr as $k => $v){
$xx++;
if ($xx <= $Pos * $anz or $xx > ($pos + 1) * $anz) continue;
print $xx.". ".$k." ".$v."<br>\n";
};
Ich suche nun einen Ansatz, der mir die große Schleife erspart. So etwas wie View_Schlüssel ($arr, 20, 10); -> Zeige 10 Schlüssel ab Position 20.
Kann mir jemand helfen?
Gruß, Mario
Hallo Mario,
warum baust du denn nicht selbst eine
Funktion aus deiner Schleife ?
foreach ($arr as $k => $v){
$xx++;
if ($xx <= $Pos * $anz or $xx > ($pos + 1) * $anz) continue;
print $xx.". ".$k." ".$v."<br>\n";
};Ich suche nun einen Ansatz, der mir die große Schleife erspart. So etwas wie View_Schlüssel ($arr, 20, 10); -> Zeige 10 Schlüssel ab Position 20.
z.b. (*nicht getestet müsste aber gehen)
function view_schl($arr, $start=0, $anz=10)
{
foreach ($arr as $k => $v)
{
$xx++;
if ($start > $xx){continue; $zz++}
$output .= $xx.". ".$k." ".$v."<br>\r\n";
if($zz == $anz){break;}
}
return $output;
}
// AUFRUF DURCH zb. : view_schl($meinarray,'13','4')
// Ich würde aber normalerweise die Funktion
// array_slice() nutzen. siehe MANUAL
Gruss
Nikki
// AUFRUF DURCH zb. : view_schl($meinarray,'13','4')
Nachtrag:
Natürlich bei der Ausgabe print oder echo nutzen
// AUFRUF DURCH zb. : echo view_schl($meinarray,'13','4')
Hallo Mario,
So etwas wie View_Schlüssel ($arr, 20, 10); -> Zeige 10 Schlüssel ab Position 20.
vielleicht array_slice() (->http://www.php.net/array_slice)? Ausgeben musst du die Elemente dann natürlich noch selbst.
Grüße aus Nürnberg
Tobias
Hallo Tobias, Hallo Nicole,
array_slice ist wunderbar. Ich hatte die Funktion immer nur mit nummerischen Arrays in Verbindung gebracht, aber es funktioniert auch mit alphanummerischen.
Ich Danke Euch
Gruß, Mario