Sicherlich ist die array_mapVerwendung eines Containers, der ArrayAccesszum Ableiten von Objekten implementiert wird, nur eine intelligentere, semantische Methode, um dies zu erreichen.
Die Array-Map-Semantik ist in den meisten Sprachen und Implementierungen, die ich gesehen habe, ähnlich. Es wurde entwickelt, um ein modifiziertes Array basierend auf dem Eingabe-Array-Element zurückzugeben (hohe Ebene ohne Berücksichtigung der Sprachkompilierungs- / Laufzeittyp-Einstellungen). Eine Schleife soll mehr Logik ausführen.
Zum Abrufen von Objekten nach ID / PK würde ich, je nachdem, ob Sie SQL verwenden oder nicht (es wird empfohlen), einen Filter verwenden, um sicherzustellen, dass ich ein Array gültiger PKs erhalte, dann mit Komma implodieren und in eine SQL- IN()Klausel einfügen Geben Sie die Ergebnismenge zurück. Es wird ein Aufruf anstelle mehrerer über SQL ausgeführt, wodurch ein Teil des call->waitZyklus optimiert wird. Am wichtigsten ist, dass mein Code für jemanden aus jeder Sprache mit einem gewissen Grad an Kompetenz gut lesbar ist und wir nicht auf Veränderlichkeitsprobleme stoßen.
<?php
$arr = [0,1,2,3,4];
$arr2 = array_map(function($value) { return is_int($value) ? $value*2 : $value; }, $arr);
var_dump($arr);
var_dump($arr2);
vs.
<?php
$arr = [0,1,2,3,4];
foreach($arr as $i => $item) {
$arr[$i] = is_int($item) ? $item * 2 : $item;
}
var_dump($arr);
Wenn Sie wissen, was Sie tun, werden Sie niemals Probleme mit der Veränderlichkeit haben (wenn Sie beabsichtigen, diese zu überschreiben, können $arrSie dies immer $arr = array_mapund explizit tun .