phpbar.de logo

Mailinglisten-Archive

[php] Array in Scheiben (lecker Käse )

[php] Array in Scheiben (lecker Käse )

Ralf Müller r_mueller at imp-ag.de
Don Dez 9 13:21:27 CET 2004


Am Donnerstag, 9. Dezember 2004 10:22 schrieb Sebastian Mendel:
> Ralf Müller wrote:
> >>davon möchte ich nur die ersten N Elemente haben. Leider produziert
> >>array_slice($arr,0,3):
> >>
> >>Array ( [0] =>
> >>[1] =>
> >>[2] => 148.4 +
> >>[3] =>
> >>)
> >>
> >>Kennt jemand vielleicht eine Einfachere Möglichkeit, als die Schlüssel
> >> und die Werte zu getrennt zu 'slicen' und danach wieder zusammen zu
> >> bauen. Mir erscheint das zu kompliziert. Hätte gedacht es gibt in PHP
> >> schon ein Funktioen, die Array zerteilt und dabei die Schlüssel - Wert
> >> beziehung erhält.
> >
> > Hab dass jetzt so gelöst:
> >
> > {
> >    $k = array_keys($orders); $v = array_values($orders);
> >    $k = array_slice($k,0,3); $v = array_slice($v,0,3);
> >    foreach ( $k as $i => $thisk )
> >    {
> >       $newOrders[$thisk] = $v[$i];
> >    }
> >    $orders = $newOrders;
> > }
> >
> > sollte auch mit mehrfachen Werten zurechtkommen, denke ich.
> >
> > Geht das auch kürzer?
>
> achso, du willst einfach die ersten drei Werte des Arrays haben? ich
> hatte das irgendwie ganz anders verstanden ... die ersten drei wo was
> drinne steht ...
>
> geth kürzer: ;-)
>
> $counter = 0;
> $new_orders = array();
> foreach ( $orders as $key => $val )
> {
>      $new_orders[$key] = $val;
>      if ( 3 === ++$counter ) break;
> }
>
> oder:
>
> foreach ( array_slice( array_keys($orders), 0, 3) as $key )
> {
>      $newOrders[$key] = $orders[$key];
> }

Die letzte Version ist Klasse. 
die nehm ich. 

danke!
ralf

php::bar PHP Wiki   -   Listenarchive