Baba: Nicht genutzte optionale Parameter überspringen?

php.net sagt zu array_sclice

array array_slice ( array $array , int $offset [, int $length [, bool $preserve_keys = false ]] )

Ich würde gerne $length nicht angeben, womit der ganze Rest des Arrays betroffen ist. Allerdings würde ich gerne $preserve_keys = TRUE verwenden. Bisher habe ich das so gemacht:

$Data = array(  
  1980 => 3,  
  1990 => 4,  
  2000 => 5,  
  2010 => 29,  
  2020 => 42,  
);  
  
$clip_from     = 2000;  
$data_length   = count($Data);  
$key_clip_from = array_search($clip_from, array_keys($Data));  
$Data          = array_slice($Data, $key_clip_from, $data_length - $key_clip_from, true);

Gehts einfacher?

Cheers,
Baba

  1. Gehts einfacher?

    Laut eines Kommentars mit NULL als Länge (Quelle, ungetestet)

    MfG
    bubble

    1. Moin!

      Gehts einfacher?
      Laut eines Kommentars mit NULL als Länge (Quelle, ungetestet)

      Das ist allerdings kein pauschal gültiges Vorgehen. NULL ist kein Ersatzwert für "nimm den Default", sondern bedeutet explizit NULL und funktioniert nur dann, wenn der Default-Wert auch NULL ist. Was hier anscheinend der Fall ist.

      In der PHP-Doku fehlt an dieser Stelle leider, welcher Wert für diesen optionalen Parameter als Standard verwendet wird. Wäre das angegeben, könnte man den Funktionsaufruf mit eben diesem Standard-Wert auch explizit vollziehen, ohne etwas am Aufruf zu ändern. Der letzte Parameter hat seine Default-Angabe in der Doku stehen.

      Ist vermutlich der Klassiker des Doku-Fails: Wie man der History entnehmen kann, ist der letzte Parameter erst seit PHP 5.0.2 mit dabei, d.h. auch erst seit dieser Version ist die Doku aktualisiert. Vorher gab es nur einen einzigen optionalen Parameter und deshalb nicht das Verlangen, diesen zu überspringen. Und derjenige, der den neuen Parameter dokumentiert hat, hat nicht dran gedacht, den Default-Wert des vorhergehenden Parameters zu recherchieren und zu ergänzen.

      - Sven Rautenberg

      1. [latex]Mae  govannen![/latex]

        In der PHP-Doku fehlt an dieser Stelle leider, welcher Wert für diesen optionalen Parameter als Standard verwendet wird. Wäre das angegeben, könnte man den Funktionsaufruf mit eben diesem Standard-Wert auch explizit vollziehen, ohne etwas am Aufruf zu ändern. Der letzte Parameter hat seine Default-Angabe in der Doku stehen.

        Die deutsche Version sollte man ohnehin nur dann nehmen, wenn es sich gar nicht vermeiden läßt, sie hinkt teilweise mehrere Release-Versionen hinterher. in der englsichen ist es drin: http://php.net/manual/en/function.array-slice.php

        Stur lächeln und winken, Männer!
        Kai

        --
        var jQuery = $(hit);
        Wir sind die Schlumpf. Widerschlumpf ist schlumpflos. Wir werden Sie einschlumpfen.
        SelfHTML-Forum-Stylesheet
      2. Tach!

        In der PHP-Doku fehlt an dieser Stelle leider, welcher Wert für diesen optionalen Parameter als Standard verwendet wird.

        Nö, fehlt nicht, fehlt nur in der deutschen Übersetzung.

        Ist vermutlich der Klassiker des Doku-Fails: Wie man der History entnehmen kann, ist der letzte Parameter erst seit PHP 5.0.2 mit dabei, d.h. auch erst seit dieser Version ist die Doku aktualisiert. Vorher gab es nur einen einzigen optionalen Parameter und deshalb nicht das Verlangen, diesen zu überspringen. Und derjenige, der den neuen Parameter dokumentiert hat, hat nicht dran gedacht, den Default-Wert des vorhergehenden Parameters zu recherchieren und zu ergänzen.

        Der Default-Wert ist auch für den letzten Parameter nicht uninteressant.

        dedlfix.