Apriamo un piccolo corso di matematica applicata all'informatica,
ovvero ripercorriamo i passi dell'algebra passando dalle esigenze pratiche che l'informatica spesso ci chiede.
Speriamo che questo piccolo corso possa esservi di aiuto nei vostri studi.
Cominciamo oggi con i fondamenti dell'aritmetica, ovvero gli INSIEMI.
Secondo i principi base dello studio degli insiemi,
https://it.wikipedia.org/wiki/Teoria_degli_insiemi
vediamo le caratteristiche principali degli insiemi:
1. APPARTENENZA
(simbolo )
https://it.wikipedia.org/wiki/Appartenenza
se scriviamo a X
Vuol dire che l'elemento "a" appartiene al Insieme "X"
caso di NON APPARTENENZA:
ESEMPIO:
Se abbiamo un Insieme X {a,b,c,d,e}
possiamo scrivere quindi che a appartiene ad X
e che f non appartiene ad X
ESEMPIO PRATICO IN PHP
http://php.net/manual/it/function.in-array.php
2. INCLUSIONE
https://it.wikipedia.org/wiki/Inclusione
Dove B è un sottoinsieme di A
A = {1,2,3,4,5,6}
B = {1,2,3}
Ovvero: B A
3. INTERSEZIONE
https://it.wikipedia.org/wiki/Intersezione_(insiemistica)
Questo è uno dei casi più interessanti per lo sviluppo php.
Simbolo:
Una intersezione è costituito da quegli elementi che appartengono sia All'insieme A che all'insieme B.
nello specifico, "A" intersecato a "B" = "C"
Ovvero: C = A B
Nel nostro caso pratico, è interessante vedere quali sono le funzioni di php che ci vengono in aiuto nel confronto di due insiemi (array):
ESEMPIO PRATICO IN PHP
Se provate a lanciare questo script, vedrete che vengono estrapolati gli elementi comuni ad i 2 insiemi- array. ovvero
quindi 2, 4,12 = C
In questo caso specifico, vediamo come in calcolo sia fatto dentro l'array1, ed il risultato mostra quali valori key/value sono presenti nell'array2, stampando però dall'array 1. [0] ..[5]
Se vogliamo vedere distintamente quali elementi sono presi dai rispettivi array, possiamo scrivere in questo modo:
Esempio 2 $array1 = array(2, 4, 6, 8, 10, 12); $array2 = array(1, 2, 3, 4, 5, 6);
Naturalmente funziona anche con più Insiemi-array:
Risultato degli elementi comuni fra i 3 array - insiemi:
In questo caso l'accoppiata key->value "nome->Mario" sono uguali in entrambi gli array (e solamente questa coppia).
Se invece c'è bisogno di sapere solo quali sono le Key in comune, si può utilizzare la funzione php array_intersect_key()
Risultato:
In questo caso le key "blue" e "green" sono KEY presenti in entrambi gli array
E' possibile aggiungere delle funzioni di controllo all' intersect con
E' possibile aggiungere delle funzioni di controllo al confronto sulla KEY o sul VALUE con le funzioni:
ovvero ripercorriamo i passi dell'algebra passando dalle esigenze pratiche che l'informatica spesso ci chiede.
Speriamo che questo piccolo corso possa esservi di aiuto nei vostri studi.
Cominciamo oggi con i fondamenti dell'aritmetica, ovvero gli INSIEMI.
Secondo i principi base dello studio degli insiemi,
https://it.wikipedia.org/wiki/Teoria_degli_insiemi
vediamo le caratteristiche principali degli insiemi:
1. APPARTENENZA
(simbolo )
https://it.wikipedia.org/wiki/Appartenenza
se scriviamo a X
Vuol dire che l'elemento "a" appartiene al Insieme "X"
caso di NON APPARTENENZA:
ESEMPIO:
Se abbiamo un Insieme X {a,b,c,d,e}
possiamo scrivere quindi che a appartiene ad X
e che f non appartiene ad X
ESEMPIO PRATICO IN PHP
http://php.net/manual/it/function.in-array.php
in_array()
Per vedere se un elemento è presente in un array, considerato qui come un insieme, utilizziamo la funzione in_array() di php<?php $a = array('1','2','3','4','5','6'); if (in_array('4', $a)) { echo "4 appartiene ad A"; } else { echo "4 NON appartiene ad A"; }Ovvero: 4 A
2. INCLUSIONE
https://it.wikipedia.org/wiki/Inclusione
Dove B è un sottoinsieme di A
A = {1,2,3,4,5,6}
B = {1,2,3}
Ovvero: B A
3. INTERSEZIONE
https://it.wikipedia.org/wiki/Intersezione_(insiemistica)
Questo è uno dei casi più interessanti per lo sviluppo php.
Simbolo:
Una intersezione è costituito da quegli elementi che appartengono sia All'insieme A che all'insieme B.
nello specifico, "A" intersecato a "B" = "C"
Ovvero: C = A B
Nel nostro caso pratico, è interessante vedere quali sono le funzioni di php che ci vengono in aiuto nel confronto di due insiemi (array):
ESEMPIO PRATICO IN PHP
array_intersect()
<?php $array1 = array(2, 4, 6, 8, 10, 12,23,33,77); $array2 = array(1, 2, 3, 4, 5, 6,11,12,15,20); $result = array_intersect($array1, $array2); print_r($result);
Se provate a lanciare questo script, vedrete che vengono estrapolati gli elementi comuni ad i 2 insiemi- array. ovvero
Array ( [0] => 2 [1] => 4 [2] => 6 [5] => 12 )
quindi 2, 4,12 = C
In questo caso specifico, vediamo come in calcolo sia fatto dentro l'array1, ed il risultato mostra quali valori key/value sono presenti nell'array2, stampando però dall'array 1. [0] ..[5]
Se vogliamo vedere distintamente quali elementi sono presi dai rispettivi array, possiamo scrivere in questo modo:
Esempio 2 $array1 = array(2, 4, 6, 8, 10, 12); $array2 = array(1, 2, 3, 4, 5, 6);
$array1 = array(2, 4, 6, 8, 10, 12); $array2 = array(1, 2, 3, 4, 5, 6); var_dump(array_intersect($array1, $array2)); var_dump(array_intersect($array2, $array1));Che mostrerà questo output:
Esempio 2.a array(3) { [0]=> int(2) [1]=> int(4) [2]=> int(6) } Esempio 2.b array(3) { [1]=> int(2) [3]=> int(4) [5]=> int(6) }Dove possiamo vedere la posizione dei singoli elementi rispettivamente in array1 ed array2.
Naturalmente funziona anche con più Insiemi-array:
$array1 = array(2, 4, 6, 8, 10, 12,23,33,77); $array2 = array(1, 2, 3, 4, 5, 6,11,12,15,20); $array3 = array(51, 42, 3, 4, 65, 6,111,12,15,20,645); $result3 = array_intersect($array1, $array2, $array3); print_r($result3);
Risultato degli elementi comuni fra i 3 array - insiemi:
Array ( [1] => 4 [2] => 6 [5] => 12 )
array_intersect_assoc()
C'è anche la possibilità di fare il confronto fra value e key, non solo del valore$array1 = array("nome" => "Mario", "cognome" => "Rossi", "soprannome1" => "Rex", "valore1", "valore2"); $array2 = array("nome" => "Mario", "cognome" => "Verdi", "soprannom2"=> "Rex", "valore1", "valore3"); $result_array = array_intersect_assoc($array1, $array2); print_r($result_array);Risultato degli elementi comuni fra i 2 array - insiemi con key e value :
Array ( [nome] => Mario [0] => valore1 )
In questo caso l'accoppiata key->value "nome->Mario" sono uguali in entrambi gli array (e solamente questa coppia).
array_intersect_key()
Se invece c'è bisogno di sapere solo quali sono le Key in comune, si può utilizzare la funzione php array_intersect_key()
$array1 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4); $array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8); var_dump(array_intersect_key($array1, $array2));
Risultato:
array(2) { ["blue"]=> int(1) ["green"]=> int(3) }
In questo caso le key "blue" e "green" sono KEY presenti in entrambi gli array
E' possibile aggiungere delle funzioni di controllo all' intersect con
array_uintersect()
http://php.net/manual/en/function.array-uintersect.phpE' possibile aggiungere delle funzioni di controllo al confronto sulla KEY o sul VALUE con le funzioni:
Commenti
Posta un commento