PHP: Array. Array = variabile che contiene un insieme (ordinato) di elementi. $strumenti. Elemento: scalare (semplice) o un altro array.

Documenti analoghi
Biblioteca: Schema. libri titolo autore anno copie. prestiti libro lettore. lettori nome nascita citta

Laboratorio Progettazione Web Array in PHP. Andrea Marchetti IIT-CNR 2013/2014

Laboratorio Progettazione Web Array in PHP Lezione 7. Andrea Marchetti IIT-CNR 2011/2012

RELAZIONE TECNICA SUL SITO DELLA PALESTRA. Anno scolastico Alunno: Davide martinicca. Pagina 1

CREAZIONE PAGINE STATICHE

stringa $valore = "cavallo"; $valore = 'struzzo'; $valore = 'x'; // il tipo carattere è un caso particolare di stringa

Laboratorio Progettazione Web Il linguaggio PHP Lezione 6. Andrea Marchetti IIT-CNR 2011/2012

Guida all'utilizzo. Creazione template con linguaggio html per Editor Drag&drop

INTRODUZIONE AL LINGUAGGIO HTML: PARTE 2. Internet + HTML + HTTP = WWW

Linguaggio per ipertesti

Il linguaggio PHP. Elementi base

Creare l array presentato nei lucidi ([pippo, pluto, etc])

Creare un portale personalizzato

2011 Politecnico di Torino 1

JavaScript Distribuire il calcolo

Università di Bergamo Facoltà di Ingegneria. Applicazioni Internet B. Paolo Salvaneschi B5_1 V1.14. Java Script

Guida introduttiva al PHP

Laboratorio Progettazione Web Il linguaggio PHP Le Istruzioni. Andrea Marchetti IIT-CNR AA 2014/2015

Laboratorio Progettazione Web Il linguaggio PHP Variabili e Istruzioni. Andrea Marchetti CNR/IIT AA 2016/2017

Le basi del linguaggio Java

Javascript. - Corso Web Design - Media Dream Academy. Stefano Gaborin

SECONDA PARTE.omissis. . omissis

Introduzione a XHTML. smartpixel. Guida al linguaggio e alle sue regole di base

Laboratorio Progettazione Web Il linguaggio PHP - Introduzione. Andrea Marchetti IIT-CNR AA 2013/2014

RELAZIONE E-COMMERCE

Esercizi su JavaScript, DOM e Web Storage

PHP E MYSQL CREAZIONE DI UN NUOVO DATABASE DAL PHPMYADMIN

Un client su arduino invia i dati acquisiti ad un database

Realizzare il layout di un sito web senza utilizzare frame e tabelle

Un contatore di accessi

Lab. di Sistemi Operativi - Esercitazione - Comandi Shell

GLI IPERTESTI IN AMBIENTE INTERNET

Laboratorio Progettazione Web Il linguaggio PHP Le Istruzioni. Andrea Marchetti IIT-CNR AA 2015/2016

Serve per impostare. enfatizza il testo (l effetto è quello del grassetto, comando utile per i motori di ricerca) <ul> comandi relativi all immagine

Indice Configurazione di PHP Test dell ambiente di sviluppo 28

TECN.PROG.SIST.INF. Server Web Roberta Gerboni

PHP Survival Kit (Ovvero gestire un database MySQL tramite PHP)

Tabelle HTML. Tabelle Un po di notazione.

1. (6 punti) Spiegare il significato, in modo dettagliato, del pezzo di codice seguente di una servlet:

Programmazione web lato client con JavaScript. Marco Camurri 1

APPLICAZIONI WEB E INTRANET CON PHP

ISTITUTO PARITARIO MICHELANGELO - RIMINI- PIANO DI LAVORO

OBIETTIVI MINIMI Anno scolastico TIC-TIT. 1. Foglio elettronico: funzioni fondamentali (Excel)

& & &&' ' &'* +, /0012/00/

1 COME CREARE UN GUESTBOOK PER IL TUO SITO WEB

Immaginiamo la nostra prima tabella come una griglia formata da righe e colonne. I tag necessari per creare una tabella sono: <table>

E-COMMERCE Relazione

Array di array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 03. A. Miola Febbraio 2008

Vodafone SMS Exploiting v0.1 by ErMeS & Pnluck

Introduzione a Matlab

APERTURA E CHIUSURA FILE (FUNZIONI FOPEN E FCLOSE)

Manuale Gateway SMS. (Versione Documento 2.1) pagina 1 di 5

Introduzione a MySQL. Definizione SQL. Esempio

Espressioni. Espressione = meccanismo fondamentale per esprimere computazioni in un LP importante comprenderne la semantica!

Gestione dei file in PHP

bool mysql_select_db([string database_name [,resource link_identifier]]) Connessione ad un server MySQL vuole conettere

A.S Classe III H Informatica. Programma didattico finale e indicazioni per il recupero estivo relativi all'insegnamento di Informatica

AJAX (Asynchronous JavaScript and XML)

Laboratorio Progettazione Web Le funzioni in PHP. Angelica Lo Duca IIT-CNR 2012/2013

I puntatori. Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore

Problema: ricerca di un elemento

Le Stringhe. Usare la classe java.lang.string

TOP DOWN. Preparati per il compito in classe Modulo 5

Costanti e Variabili

#HTML & MArkup Languages. good web design VS bad web design

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

strutture e file di testo/binari Esercizio - lettura/filtro/scrittura PEOPLE.TXT PARTNERS.DAT Due persone sono compatibili

VBA Principali Comandi

2011 Politecnico di Torino 1

HIGHCHARTS. Federico Martinelli

HTML 5. Tabelle. Bordi di una tabella. Il tag <TABLE> Le tabelle. Tag fondamentali. Costruzione di tabelle riga per riga. Esempi

Laboratorio di Basi di Dati

Dati di base > Impostazione database > Funzioni ed applicazioni

Linguaggio C - Array. Array: tipo nome_array[num_elementi]

array: strumento per costruire rappresentazioni di tipi strutturati omogenei

Metodologie Informatiche Applicate al Turismo

HTML. Es: La prossima parola è in <b>neretto</b> Es: La prossima parola è in neretto

Guida web: HTML per principianti

Realizzare una piccola chat in php senza database

APPUNTI DI HTML (QUARTA LEZIONE)

Corso di PHP. Prerequisiti. 6.2 PHP e il web 2. Conoscenza HTML Tecnica della programmazione Principi di programmazione web

Gli Array (2) Gli Array. Gli Array (4) Gli Array (3)

4 Pubblicare i dati MySQL

Sommario. Introduzione... xv. Giorno 1 Elementi base del linguaggio C

SQL - Structured Query Language

MATLAB parte II. Array

METODI ESERCIZI. 07-xx_Esercizi[01] Versione del: venerdì 3 maggio Andrea Zoccheddu CORSO INFORMATICA ITI ANGIOY SASSARI

Primi passi con HTML. Il documento HTML

Università degli Studi di Urbino

PHP: Professional Hypertext Preprocessor

Lezione 3 Tipi di Dato Derivati

D B M G Il linguaggio HTML

Navigare in Internet Laboratorio di approfondimento la creazione di siti web e/o blog. Marco Torciani. (Quinta lezione) Unitre Pavia a.a.

Scritto da Martedì 12 Luglio :14 - Ultimo aggiornamento Venerdì 15 Luglio :47

Array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 11. A. Miola Dicembre 2007

Laboratorio di sistemi Template e MySQL Php

Laboratorio di sistemi Web Application in Php5 Php

MY SQL Guida MySQL di base

@2011 Politecnico di Torino 1

3. Matrici e algebra lineare in MATLAB

Transcript:

PHP: Array Array = variabile che contiene un insieme (ordinato) di elementi $strumenti Elemento: scalare (semplice) o un altro array Individuazione degli elementi mediante indicizzazione numerica associativa 1

Array Indicizzati Numericamente Creazione di array mediante enumerazione dei suoi elementi: $strumenti = array('', '', '', ''); Creazione di array mediante assegnamento con un altro array: $a = $strumenti; $numeri = range(1, 10); $numeri = array(1,2,3,4,5,6,7,8,9,10); $lettere = range('a', 'z'); $lettere = array('a','b',..., 'z'); Creazione di array mediante caricamento da database 2

Array Indicizzati Numericamente (ii) Accesso di un elemento dell array: mediante nome-array + indice 0 echo $strumenti[2]; 1 2 3 Modifica del contenuto di un elemento: mediante assegnamento $strumenti[2] = 'arpa'; arpa 3

Array Indicizzati Numericamente (iii) Creazione 'incrementale' di array: $strumenti[0] = ''; $strumenti[1] = ''; $strumenti[2] = ''; $strumenti[3] = ''; Accesso agli elementi dell array mediante cicli: for($i=0; $i<4; $i++) echo "$strumenti[$i] "; foreach($strumenti as $strumento) echo "$strumento "; 4

Array Indicizzati Associativamente Indice rappresentato da un nome (chiave): 2500 $prezzi = array(''=>2500, ''=>8000, ''=>5400, ''=>11000); 8000 5400 11000 5

Array Indicizzati Associativamente (ii) Accesso agli elementi dell array: mediante nome-array + chiave 2500 echo $prezzi['']; 5400 8000 5400 11000 6

Array Indicizzati Associativamente (iii) Creazione 'incrementale' di array associativo: $prezzi[''] = 2500; $prezzi[''] = 8000; $prezzi[''] = 5400; $prezzi[''] = 11000; Accesso agli elementi dell array associativo mediante cicli: foreach($prezzi as $prezzo) echo "$prezzo "; 2500 8000 5400 11000 foreach($prezzi as $strumento => $prezzo) echo "$strumento: $prezzo <br />"; : 2500 : 8000 : 5400 : 11000 7

Operatori per Array Simbolo Nome Esempio Risultato + Unione $a + $b Concatenazione di $a con gli elementi di $b che hanno indici diversi da quelli in $a == Uguaglianza $a == $b Uguaglianza di $a e $b === Identità $a === $b Identità di $a e $b!= Disuguaglianza $a!= $b Disguaglianza di $a e $b!== Non identità $a!== $b Non identità di $a e $b $a = array(1,2,3); $b = array(4,5,6,7,8); $c = array('1','2','3'); $a + $b: (1,2,3,7,8) $a == $b: false $a == $c: true $a === $c: false 8

Indicizzazione numerica: Array Multidimensionali $articoli = array(array('flt','', 2500), array('vln', '', 8000), array('obo', '', 5400), array('lut', '',11000)); FLT 2500 VLN 8000 OBO 5400 LUT 11000 9

Array Multidimensionali (ii) Accesso mediante ciclo for: for($riga=0; $riga<4; $riga++) { for($colonna=0; $colonna<3; $colonna++) echo $articoli[$riga][$colonna]. ' '; echo '<br />'; } $riga $colonna FLT 2500 VLN 8000 OBO 5400 LUT 11000 FLT 2500 VLN 8000 OBO 5400 LUT 11000 10

Indicizzazione mista: Array Multidimensionali (iii) $articoli = array(array('codice'=>'flt', 'strumento'=>'', 'prezzo'=>2500), array('codice'=>'vln', 'strumento'=> '', 'prezzo'=>8000), array('codice'=>'obo', 'strumento'=>'', 'prezzo'=>5400), array('codice'=>'lut', 'strumento'=>'', 'prezzo'=> 11000)); codice strumento prezzo FLT 2500 VLN 8000 OBO 5400 LUT 11000 11

Accesso mediante ciclo foreach: Array Multidimensionali (iv) foreach($articoli as $articolo) { foreach($articolo as $indice => $contenuto) echo "$indice: $contenuto "; echo '<br />'; } codice: FLT strumento: prezzo: 2500 codice: VLN strumento: prezzo: 8000 codice: OBO strumento: prezzo: 5400 codice: LUT strumento: prezzo: 11000 $articolo codice strumento prezzo FLT 2500 VLN 8000 OBO 5400 LUT 11000 12

Ordinamento di Array Ordinamento di array indicizzati numericamente: sort() $strumenti = array('', '', '', ''); sort($strumenti); 13

Ordinamento di Array (ii) Ordinamento di array indirizzati associativamente: ksort() e asort() $prezzi = array(''=>2500, ''=>8000, ''=>5400, ''=>11000); 2500 8000 5400 2500 11000 ksort($prezzi); 11000 5400 8000 2500 5400 8000 asort($prezzi); 11000 14

Ordinamento di Array (iii) Ordinamento di array in ordine inverso: rsort(), krsort() e arsort() rsort($strumenti); krsort($prezzi); 2500 8000 5400 11000 8000 5400 11000 2500 arsort($prezzi); 2500 8000 5400 11000 11000 8000 5400 2500 15

Riordinamento Casuale di Array: shuffle.php shuffle($a): riordina casualmente gli elementi di $a <?php $quadri = array('babakar.jpg', 'giardino.jpg', 'grano.jpg', 'infiore.jpg', 'mosaico.jpg', 'kand.jpg', 'kand2.jpg', 'kand3.jpg', 'kand4.jpg', 'kand5.jpg', 'kand6.jpg', 'pic1.jpg','pic2.jpg', 'pic3.jpg', 'ramo.jpg', 'van1.jpg', 'van2.jpg', 'van3.jpg', 'van4.jpg', 'van5.jpg'); shuffle($quadri);?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> <title>pinacoteca Virtuale</title> </head> <body> <h1>pinacoteca Virtuale</h1> <table width="100%"> <tr> <?php for($i=0; $i<3; $i++) { echo "<td align='center'><img src='../immagini/$quadri[$i]' height='100'></td>"; }?> </tr> </table> </body> </html> 16

Riordinamento Casuale di Array: shuffle.php (ii) 17

Inversione di Array array_reverse($a): genera un array inverso di $a $inv_str = array_reverse($strumenti); $inv_art = array_reverse($articoli); codice strumento prezzo FLT 2500 VLN 8000 OBO 5400 LUT 11000 codice strumento prezzo LUT 11000 OBO 5400 VLN 8000 FLT 2500 18

Conteggio degli Elementi in Array count($a): restituisce il numero di elementi dell array $a echo count($strumenti); 4 array_count_values($a): restituisce una array associativo che indica la frequenza di ogni elemento nell array $a (gli elementi di $a devono essere scalari) 3 2 1 2 19

Conversione di Array Associativi in Variabili Scalari extract(array a [, int tipologia [, string prefisso]]): genera un insieme di variabili omonime delle chiavi di a extract($prezzi); echo "$ $ $ $" 2500 8000 5400 11000 2500 8000 5400 11000 Parametri opzionali: tipologia: tipologia di gestione delle collisioni (default: sovrascrittura) prefisso: rilevante per certe tipologie di collisione Tipologia EXTR_OVERWRITE EXTR_SKIP EXTR_PREFIX_SAME EXTR_PREFIX_ALL EXTR_PREFIX_INVALID EXTR_IF_EXISTS Significato Sovrascrive le variabili in caso di collisione Salta l elemento che provoca la collisione Crea una variabile $prefisso_chiave solo in caso di collisione Crea tutte le variabili $prefisso_chiave, indipendentemente dalle collisioni Crea una variabile $prefisso_chiave in caso di identificatore (chiave) non valido Estrae solo le variabili che già esistono 20

$libri titolo autore anno copie asterix aldo 1962 5 obelix osvaldo 1964 3 fiordaliso anna 1999 2 medioevo mino 1956 1 romani rino 2001 10 greci giovanni 1972 4 misteri giacomo 1986 3 gioia di vivere michele 1952 7 vivere la gioia michele 1954 9 Esercitazione: Biblioteca libro asterix asterix asterix fiordaliso gioia di vivere medioevo misteri obelix romani romani $prestiti lettore annalisa donato floriano rosa zeno giacomo giacomo donato emma valerio $lettori nome nascita citta andrea 1982 bergamo annalisa 1975 mantova beniamino 1999 chieti ciro 1950 salerno donato 1988 lucca emma 1955 sassari floriano 1970 grosseto giacomo 1968 palermo ilaria 1982 firenze paolo 1967 firenze rosa 1992 firenze valerio 1981 genova zeno 1952 trieste 21

Esercitazione: biblioteca.php <?php $libri = array(array('titolo'=>'asterix', 'autore'=>'aldo', 'anno'=>1962, 'copie'=>5), array('titolo'=>'obelix', 'autore'=>'osvaldo', 'anno'=>1964, 'copie'=>3), array('titolo'=>'fiordaliso', 'autore'=>'anna', 'anno'=>1999, 'copie'=>2), array('titolo'=>'medioevo', 'autore'=>'mino', 'anno'=>1956, 'copie'=>1), array('titolo'=>'romani', 'autore'=>'rino', 'anno'=>2001, 'copie'=>10), array('titolo'=>'greci', 'autore'=>'giovanni', 'anno'=>1972, 'copie'=>4), array('titolo'=>'misteri', 'autore'=>'giacomo', 'anno'=>1986, 'copie'=>3), array('titolo'=>'gioia di vivere', 'autore'=>'michele', 'anno'=>1952, 'copie'=>7), array('titolo'=>'vivere la gioia', 'autore'=>'michele', 'anno'=>1954, 'copie'=>9)); $prestiti = array(array('libro'=>'asterix', 'lettore'=>'annalisa'), array('libro'=>'asterix', 'lettore'=>'donato'), array('libro'=>'asterix', 'lettore'=>'floriano'), array('libro'=>'fiordaliso', 'lettore'=>'rosa'), array('libro'=>'gioia di vivere', 'lettore'=>'zeno'), array('libro'=>'medioevo', 'lettore'=>'giacomo'), array('libro'=>'misteri', 'lettore'=>'giacomo'), array('libro'=>'obelix', 'lettore'=>'donato'), array('libro'=>'romani', 'lettore'=>'emma'), array('libro'=>'romani', 'lettore'=>'valerio')); $lettori = array(array('nome'=>'andrea', 'nascita'=>1982, 'citta'=>'bergamo'), array('nome'=>'annalisa', 'nascita'=>1975, 'citta'=>'mantova'), array('nome'=>'beniamino', 'nascita'=>1999, 'citta'=>'chieti'), array('nome'=>'ciro', 'nascita'=>1950, 'citta'=>'salerno'), array('nome'=>'donato', 'nascita'=>1988, 'citta'=>'lucca'), array('nome'=>'emma', 'nascita'=>1955, 'citta'=>'sassari'), array('nome'=>'floriano', 'nascita'=>1970, 'citta'=>'grosseto'), array('nome'=>'giacomo', 'nascita'=>1968, 'citta'=>'palermo'), array('nome'=>'ilaria', 'nascita'=>1982, 'citta'=>'firenze'), array('nome'=>'paolo', 'nascita'=>1967, 'citta'=>'firenze'), array('nome'=>'rosa', 'nascita'=>1992, 'citta'=>'firenze'), array('nome'=>'valerio', 'nascita'=>1981, 'citta'=>'genova'), array('nome'=>'zeno', 'nascita'=>1952, 'citta'=>'trieste'));?> Query 1: Quali sono i libri? 22

Esercizio 1: processa_query_1.php 23

Esercizio 1: processa_query_1.php... <body> <?php require('biblioteca.php'); echo '<table border="1" cellspacing="0" cellpadding="2">'; echo '<tr><th style="background-color:lavender">titolo</th></tr>'; foreach($libri as $libro) echo '<tr><td align="center">'. $libro['titolo']. '</td></tr>'; echo '</table>';?> </body> </html> 24

Esercizio 2: processa_query_2.php 25

Esercizio 3: processa_query_3.php 26

Esercizio 4: processa_query_4.php 27

Esercizio 5: processa_query_5.php query_5.php processa_query_5.php 28

Esercizio 6: processa_query_6.php query_6.php processa_query_6.php 29

Esercizio 7: processa_query_7.php query_7.php processa_query_7.php 30

Esercizio 8: processa_query_8.php query_8.php processa_query_8.php 31

Esercizio 9: processa_query_9.php 32

Esercizio 10: processa_query_10.php 33

Esercizio 11: processa_query_11.php 34

Esercizio 12: processa_query_12.php 35