Menu
Coddy logo textTech
Percorso di apprendimento

Algoritmi e strutture dati in PHP

In PHP un solo tipo fa quasi tutto: un array è una hash map ordinata, che fa da lista, dizionario e pila allo stesso tempo. Questo percorso ti fa costruire in PHP le strutture che sostituisce, e quelle che non può sostituire, poi le usi per ordinare, ricorrere e visitare grafi, e concludi con problemi da colloquio valutati. Gratis, nel browser, con un certificato nella maggior parte dei corsi.

377 lezioni228 sfide702 domande del quiz

Algoritmi e strutture dati in PHP, passo dopo passo

38 corsi377 lezioni228 sfide702 domande del quiz

Ogni passaggio è un insieme di corsi Coddy già esistenti, e ogni pulsante Inizia li apre in PHP. I tre corsi non ancora insegnati in PHP sono elencati dopo i passaggi.

  1. 1
    Inizia questo passoIniziaPila, coda, albero binario, tabella hash e lista concatenata, ognuno costruito da zero in PHP e poi usato per risolvere problemi. Alla fine sai quando un array è una buona pila, perché array_shift rende una coda scadente, e cosa fa per te la hash map dentro ogni array.Inizia
  2. 2
    Inizia questo passoIniziaLista doppiamente concatenata, heap e code di priorità, trie, grafi e l'albero AVL autobilanciato. Alla fine, SplDoublyLinkedList è una struttura che hai scritto tu, SplMinHeap e SplMaxHeap sono un'unica idea rivolta in due direzioni, e l'albero bilanciato che PHP non include è uno che sai costruire.Inizia
  3. 3
    Inizia questo passoIniziaBubble sort, selection, insertion, merge, quick, heap, counting e radix sort, scritti in PHP e osservati nel visualizzatore. sort() è stabile da PHP 8.0; dopo questo passaggio sai cosa significa quella garanzia e quali degli otto ordinamenti potrebbero rispettarla.Inizia
  4. 4
    Inizia questo passoIniziaSfide di ricorsione in PHP. Una funzione con nome chiama sé stessa liberamente, ma una anonima deve prima catturare sé stessa per riferimento, come in $f = function ($n) use (&$f) { ... }, un dettaglio utile da conoscere prima che un colloquio ti chieda una closure ricorsiva. La programmazione dinamica e la manipolazione dei bit sono elencate dopo i passaggi, perché sono insegnate in Python e in C++.IniziaPagina dedicata
  5. 5
    Inizia questo passoIniziaRicerca in ampiezza e in profondità, Dijkstra, Bellman-Ford, ordinamento topologico, Kruskal e Prim in PHP, sul grafo che hai costruito nel secondo passaggio. SplPriorityQueue è un max-heap, quindi Dijkstra o nega le distanze o usa un heap tuo del secondo passaggio.Inizia
  6. 6
Cosa ottieni
Tutto ciò che userai per imparare a programmare

Impara facendo

Scrivi codice vero, interroga database, crea siti web e padroneggia i prompt per l'AI. Le nostre lezioni interattive coprono tutte le competenze di cui ha bisogno uno sviluppatore moderno.

playground.js
Editor di codice
1const greeting = "Hello, Coddy!"
2function sayHi(name) {
3    return greeting + " " + name
4}
5
bottombar Collapse icon
Test #1test Case Success icon
Test #2test Case Success icon
Test #3test Case Failure icon
Input
"Alex"
Output
"Hello, Coddy! Alex"

Costruisci la tua serie

Sii costante e guarda crescere i tuoi progressi! Tieni traccia della tua abitudine quotidiana di programmare, proteggi la tua serie con i giorni di congelamento e guadagna ricompense ogni giorno che ti presenti.

12 giorni di serie

Torna domani per mantenere la tua serie!

fire Filled icon
left icon

January 2026

right icon

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

21

22

23

24

25

26

27

28

29

30

product Double Or Nothing icon

Lascia o raddoppia

Giorno 5 di 7

fire Freeze icon

Congela serie

2 left

Programma ovunque

Porta il tuo percorso di programmazione sempre con te! Niente configurazioni, niente download: apri l'app e inizia a programmare. Disponibile su iOS, Android e Web con valutazioni di 4,9 stelle.

Python
7Serie
250Punteggio
5Energia
Variabili
journey Hex Done Base iconjourney Hex Done Shadow iconjourney Hex Done Top iconjourney Lesson Done icon
journey Path Right Done icon
journey Hex Done Base iconjourney Hex Done Shadow iconjourney Hex Done Top iconjourney Lesson Done icon
journey Path Left Done icon
journey Hex Active Base iconjourney Hex Active Shadow iconjourney Hex Active Top iconjourney Lesson Theory Challenge icon
CONTINUA
journey Path Right icon
journey Hex Locked Base iconjourney Hex Locked Shadow iconjourney Hex Locked Top iconjourney Lesson Theory Challenge icon
journey Path Left icon
journey Hex Locked Base iconjourney Hex Locked Shadow iconjourney Hex Locked Top iconjourney Lesson All icon
Percorso
Obiettivi
Classifica
Profilo
4.9
StellaStellaStellaStellaStella
Valutazione

Non sei solo

Competi nelle classifiche globali, invita gli amici per guadagnare ricompense e festeggiate insieme i vostri successi. Programmare è più bello con gli amici!

Lega Sfidante
Lega SfidanteI primi 7 avanzano
leaderboard First icon1
avatar 1 icon
fire Filled icon
Alex7+ Days
2840
leaderboard Second icon2
avatar 2 icon
fire Filled icon
Jordan7+ Days
2650
leaderboard Third icon3
avatar 3 icon
fire Filled icon
Sam7+ Days
2420
4
avatar 4 icon
Casey
2180
5
avatar placeholder icon
fire Filled icon
Morgan7+ Days
1950
leaderboard Arrow Up iconZona promozioneleaderboard Arrow Up icon

Tutti i modi per imparare

Leggi, ascolta, mettiti alla prova, chiedi all'AI o ripassa qualsiasi cosa tu abbia già visto. Ogni lezione si adatta a te.

Introduzione alle variabili
Audio

Una variabile è un contenitore con un nome che memorizza un valore a cui puoi fare riferimento più avanti nel programma.

In Python la crei scrivendo il nome, un segno di uguale e poi il valore che vuoi memorizzare.

Il valore può cambiare nel tempo: riassegnare il nome lo fa semplicemente puntare a un nuovo valore.

1xSarah

Ottieni un certificato

Ottieni un certificato per ogni corso che completi. Aggiungilo al tuo profilo LinkedIn e al curriculum per mostrare ai datori di lavoro le tue competenze di programmazione.

CoddyCertificato di completamento
Si certifica cheMario Rossiha completato con successo
python iconFondamenti di Python
Verificato
Datagen 2026
LinkedInAggiungi a LinkedIn

Perché imparare algoritmi e strutture dati in PHP su Coddy

  • Cos'è davvero un array. L'array di PHP è una hash map ordinata, ed è per questo che funzionano sia $a[] = $x sia $a['key'] = $x, e per questo array_shift è lento: rinumera ogni elemento rimanente. Costruire una vera pila, una coda e una tabella hash è il modo per capire quali operazioni sugli array costano poco e quali, in silenzio, no.
  • Algoritmi per sviluppatori web. PHP fa girare WordPress e Laravel, e a volte una pagina lenta è un problema di algoritmi travestito: in_array dentro un ciclo è una ricerca lineare a ogni passaggio, mentre isset su un array con chiavi richiede in media tempo costante. Il ragionamento che ti fa superare un colloquio è lo stesso che sistema quella pagina.
  • Quasi tutto il percorso in PHP. Ogni struttura dati, ordinamento, algoritmo sui grafi, sfida di ricorsione e pacchetto da colloquio è insegnato in PHP. Tre corsi sono insegnati altrove ed elencati dopo i passaggi con un link a ciascuno: la programmazione dinamica e la serie di colloqui in Python, in Python, e la manipolazione dei bit, in C++. La manipolazione dei bit si segue facilmente da PHP, che ha gli stessi &, |, ^, ~, << e >> del C++.
  • Valutato come in un colloquio. Ogni lezione termina con una sfida in PHP verificata da casi di test, e quando una fallisce, Bugsy legge il tuo codice e ti indirizza verso la correzione senza darti la risposta. Un certificato gratuito nella maggior parte dei corsi, ognuno verificabile al proprio URL.

Domande frequenti su algoritmi e strutture dati in PHP

PHP va bene per algoritmi e strutture dati?

Per impararli, sì, una volta che abbandoni un'abitudine: usare un array per tutto. L'array di PHP è così flessibile da fare da lista, dizionario e pila, ed è proprio questo che nasconde il costo di ogni operazione. Costruisci le strutture da te e PHP diventa un linguaggio del tutto valido per ragionare sugli algoritmi, e quello naturale per i colloqui se PHP è il tuo lavoro.

Quali classi SPL corrispondono a quali strutture dati?

SplStack e SplQueue sono una pila e una coda, entrambe costruite su SplDoublyLinkedList; SplMinHeap e SplMaxHeap sono heap; SplPriorityQueue è un max-heap ordinato per priorità; e SplFixedArray è un array a dimensione fissa con indici interi che usa meno memoria di un array. Il semplice array è la tua tabella hash. Non esiste una classe per alberi, trie o grafi, quindi quelli li scrivi tu, nel primo e nel secondo passaggio.

Perché in PHP array_shift è lento per una coda?

Perché dopo aver rimosso il primo elemento rinumera da zero ogni chiave intera rimanente, toccando tutto l'array: una coda basata su array_shift costa O(n) per ogni estrazione, e tempo quadratico per svuotarla. Usa SplQueue, oppure tieni un indice di testa nell'array e fallo avanzare. Nel primo passaggio costruisci una coda da te, il modo più sicuro per vedere la differenza.

In PHP sort() è stabile?

Da PHP 8.0, sì: sort(), usort(), asort() e le altre funzioni di ordinamento mantengono gli elementi uguali nel loro ordine originale. Prima della 8.0 non c'era questa garanzia, quindi il codice che dipendeva dall'ordine degli elementi uguali poteva comportarsi in modo diverso tra una versione e l'altra. Degli otto ordinamenti del terzo passaggio, merge sort e insertion sort sono stabili, quicksort e heap sort no; alla fine sai perché.

Quali corsi di questo percorso non sono insegnati in PHP?

Tre: la programmazione dinamica e la serie di colloqui in Python, insegnate in Python, e la manipolazione dei bit, insegnata in C++. Sono elencati dopo i passaggi, ognuno con un link che lo apre nel suo linguaggio. Una tabella di memoizzazione in PHP è un array con chiave il sottoproblema. Una trappola quando porti i trucchi sui bit: se entrambi gli operandi di &, | o ^ sono stringhe, PHP lavora sui valori in byte dei loro caratteri e restituisce una stringa, quindi assicurati prima che i valori siano interi.

Devo conoscere PHP prima di iniziare questo percorso?

Almeno funzioni, array, cicli e classi, dato che un nodo è naturalmente un oggetto con una proprietà $next. Se sono argomenti nuovi, il corso di PHP di Coddy ti porta prima a quel punto, gratis, e questo percorso riprende da dove finisce.

Altri percorsi di apprendimento

Gli stessi corsi, organizzati per un ruolo diverso. I progressi si mantengono: un corso completato in un percorso vale per ogni percorso che lo include.

Tutti i percorsi di apprendimento
Illustrazione dei linguaggi di programmazione di Coddy

Inizia gratis il percorso Algoritmi e strutture dati

Inizia a imparare