PHP-Array-Zuordnung

7

Gibt es einen saubereren Weg als foreach , um ein Array aller "Label" -Werte zu erhalten?

%Vor%     
powtac 24.02.2011, 17:33
quelle

6 Antworten

20

Nein, es gibt keinen schnelleren Weg als Ihren implementierten Code. Alle anderen Methoden werden aufgrund des Aufwands eines Funktionsaufrufs langsamer ausgeführt. Bei einem kleinen Array wird der Unterschied trivial sein, aber bei einem großen Array (100 Mitglieder oder so, je nach Implementierung) kann der Unterschied sehr groß sein ...

Sie könnten array_map it, aber ich bleibe bei der rohen PHP, die Sie oben gepostet haben ... Es ist einfacher zu pflegen und IMHO besser lesbar ...

Erzählen Sie mir doch, welches auf einen Blick Ihnen sagt, was es mehr macht:

%Vor%

vs

%Vor%

Oder:

%Vor%

Persönlich macht das erste für mich das Beste. Es ist sofort offensichtlich, ohne irgendetwas zu wissen, was es tut. Die anderen erfordern Kenntnisse über array_map Semantik zu verstehen. Verbinde das mit der Tatsache, dass array_map langsamer ist, und es ist ein doppelter Gewinn für foreach .

Code sollte nur so elegant wie nötig sein. Es sollte vor allem anderen lesbar sein ...

    
ircmaxell 24.02.2011 17:39
quelle
15

Sicher, verwenden Sie array_map :

%Vor%

Wenn Sie PHP 5.3+ verwenden, können Sie auch eine Lambda-Funktion verwenden:

%Vor%     
Jacob Relkin 24.02.2011 17:35
quelle
5
%Vor%

Hier wird angenommen, dass label das erste Element jedes Arrays ist.

    
Gaurav 24.02.2011 17:39
quelle
4

In PHP 5.3+ können Sie eine anonyme Funktion verwenden, die mit array_map gepaart ist.

%Vor%     
efritz 24.02.2011 17:36
quelle
3

Ab PHP 5.5+ ist dies genau das, was array_column macht:

%Vor%

Ссылка

    
autonymous 05.02.2014 22:14
quelle
2

Wenn label das erste Element im Array ist, funktioniert "current" mit array_map einwandfrei.

%Vor%     
Ravi Hirani 07.06.2016 10:09
quelle