Come programmatore PHP, utilizzo gli array per praticamente tutto. So che lo SPLFixedArray può essere utile in certi casi, e so che è PHP arrays aren't very memory efficient, ma raramente mi imbatto in casi reali in cui fanno fatica a fare ciò di cui ho bisogno.Quali sono le caratteristiche del tipo di array di PHP come una struttura di dati?
Questo a differenza di quando lavoro in Java, dove trovo assolutamente fondamentale capire esattamente quali strutture di dati sto usando, e i pro e i contro di ciascuno. Se qualcuno mi suggerisse di usare semplicemente una LinkedHashMap per tutto ciò che è in Java, sarebbero risate fuori dall'edificio.
Quindi, come possiamo cavartela con una tecnica così veloce e libera in PHP? Quali sono le specifiche di base degli array PHP? Viene spesso descritta come "una mappa ordinata", ma lascia molte speculazioni sull'implementazione.
Quali sono alcuni casi d'uso Gli array PHP sono particolarmente buoni a? Quali sono alcuni casi d'uso apparentemente semplici che gli array PHP sono in realtà piuttosto scadenti a?
Ad esempio, presumo c'è una sorta di una migliore gestione degli array denso interi con la carrozzeria (per esempio $arr = array('a','b','c','d','e');
) che una mappa hash ordinata, ma allora dove è il confine tra denso e sparso? Gli array diventano drasticamente meno efficienti non appena introduco anche una sola chiave non ordinata, come $arr[10] = 'f';
? Che mi dici di $arr[1000000] = 'g';
? Immagino che PHP non populi il ~ 1 milione di slot tra parentesi, ma se si tratta di un elenco collegato sotto le copertine, presumibilmente chiamando lo $arr[rand()] = rand();
ripetutamente dovrebbe fare un po 'di riordinamento dopo ogni inserimento?
Qualsiasi risposta che esplori le specifiche di base degli array PHP è benvenuta, anche se non affronta le domande specifiche che sollevo.
Perché nessuno si aspetta che PHP funzioni bene? –
In realtà, [non è previsto alcun riordino] (http://codepad.org/V0Y9K9MZ). Quando si assegna a una chiave inesistente, essa viene posta alla fine dell'array. – Ryan
Sono sorpreso che l'universo non sia stato riavviato dopo che qualcuno ha usato 'PHP' e' punti di forza' nella stessa frase. –