giorno settimanamesegiorno

Sono passati 88 giorni dall'inizio dell'anno che corrispondono a 13 settimane

Arcobaleno, domani sereno



* Chattina

Aggiorna Storia
  • mar: :resistere:
    Febbraio 15, 2022, 19:44:48
  • mar: Non mi ricordavo di essere un global moderator wauuuu Ok Prof ti lascio restaurare in pace!
    Febbraio 15, 2022, 19:43:56
  • mar: :Cartelli70:
    Febbraio 15, 2022, 19:41:14
  • mar: ad cazzum pure qui?
    Febbraio 15, 2022, 19:41:02
  • mar: ciaoooo sono in perlistrazione
    Febbraio 15, 2022, 19:40:44
  • mar: :okkey:
    Febbraio 15, 2022, 19:40:20
  • Loretta/Nina: ciao a tutti
    Ottobre 04, 2021, 19:23:02
  • Loretta/Nina: :tuffarsi:
    Settembre 21, 2021, 07:08:03
  • Loretta/Nina: Buon autunno a tutti
    Settembre 21, 2021, 07:01:35
  • nuvolotta: avventure testuali
    Luglio 06, 2020, 23:26:08
  • _jan_: ...gli ultimo però....!!
    Gennaio 14, 2019, 14:45:09
  • _jan_: vedi gli ultimi post in fondo.
    Novembre 24, 2018, 19:10:00
  • mar: Trovato :Amm9:
    Novembre 24, 2018, 18:57:51
  • mar: Chi cerca trova non vi trovo! :Cartelli2:
    Novembre 24, 2018, 18:57:05
  • mar: Vado a vedere le cartoline!
    Novembre 24, 2018, 18:52:38
  • mar: :Amore145:
    Novembre 24, 2018, 18:52:21
  • mar: :Amore178:
    Novembre 24, 2018, 18:52:07
  • _jan_: Welcome Visitor.  :Party133:
    Novembre 15, 2018, 10:03:24
  • Loretta/Nina: Benvenuto ligi  :Cartelli37:
    Ottobre 09, 2018, 13:19:25
  • nuvolotta: Cucù...  :Amore20:
    Settembre 16, 2018, 01:16:47
  • Loretta/Nina: :Party133:
    Settembre 01, 2018, 17:05:30
  • _jan_: Ciao ai visitors!!
    Settembre 01, 2018, 17:02:31
  • Loretta/Nina: :fischio: :979:
    Agosto 28, 2018, 16:20:48
  • ketty: ah beh, meno male. ora il tempo e' un po' brutto
    Agosto 26, 2018, 13:27:36
  • _jan_: No, no, soqquà. Ci passo ma....... non c'è mai nessuno. Ammiro Nuvolotta, solitaria e presente.
    Agosto 25, 2018, 10:34:41
  • ketty: ma Jan è andato in vacanza? :Cartelli70:
    Agosto 24, 2018, 20:51:59
  • ketty: ciao a tutti.
    Agosto 24, 2018, 20:50:12
  • nuvolotta: :faccina_fiore: ciao ragazzioli/ole...
    Agosto 19, 2018, 23:03:49
  • Loretta/Nina: :ciao: :Party133:
    Agosto 19, 2018, 20:24:28
  • _jan_: :Felici13:
    Agosto 04, 2018, 15:30:40
  • nuvolotta: Ferie... già fatte....
    Agosto 04, 2018, 09:54:58
  • _jan_: Auguri di buon onomastico a tutti gli Alfonso....
    Agosto 01, 2018, 11:10:21
  • _jan_: chiusp per ferie?
    Luglio 30, 2018, 19:50:58
  • _jan_: Buon onomastico a Donatella Seconda........ e la prima? :Shok145:
    Luglio 30, 2018, 06:59:38
  • _jan_: Buon onomastico a tutte le Marta.  :Amore20:
    Luglio 29, 2018, 07:44:31
  • _jan_: Ci sono altre nuove iscritte viste il 26 luglio 2018..... (mica saranno monache)....  :approva:
    Luglio 26, 2018, 18:39:04
  • _jan_: Oggi, 26 luglio 2018, abbiamo una nuova iscritta "Francesca".....Benvenuta Francesca.  :Party133:
    Luglio 26, 2018, 15:49:24
  • _jan_: Buon onomastico anche a tutte le Anna!!! .....
    Luglio 26, 2018, 10:30:21
  • _jan_: Auguri di Buon Onomastico a TUO..... (ogni giorno, credo)..... :sm269:
    Luglio 26, 2018, 10:28:52
  • ketty: ma.... quando è il tuo?
    Luglio 25, 2018, 19:52:19

* Emoticon aggiuntive e link al portale


Autore Topic: alcune funzioni utili per le matrici  (Letto 2085 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline micdas

  • Administrator
  • Hero Member
  • *****
  • Post: 848
  • Sesso: Maschio
    • sito su Excel ed il suo vba
alcune funzioni utili per le matrici
« il: Gennaio 22, 2009, 00:20:08 »
Dopo aver visto il perchè delle matrici vorrei continuare a vedere come usare alcune funzioni che ritendo abbastanza utili per manipolare le matrici.
Qui sarò breve nelle spiegazioni anche perchè le funzioni che presento sono molto semplici e non necessitano di molte delucidazioni. L'importante è sapere della loro esistenza.

Abbiamo visto l'uso dei cicli FOR e FOREACH per spazzolare in modo sequenziale le matrici.
Ora vediamo come applicare alcune funzioni quali:
array_reverse() per invertire l'ordine con cui i valori sono stati memorizzati nella matrice
sort() per ordinare in modo crescente (direzione A - Z) i valori memorizzati nella matrice
rsort() per ordinare in modo decrescente (direzione Z - A) i valori memorizzati nella matrice
natcasesort() per ordinare in modo crescente (direzione A - Z) i valori memorizzati nella matrice
array_unique() per estrarre da una matrice i valori in maniera univoca, ossia senza ripetizioni
shuffle() per ordinare in modo casuale i valori memorizzati nella matrice


array_reverse()
Abbiamo una matrice creata in questo modo:
Codice: Non sei autorizzato a vedere i links. Registrati o Login
<?php
$matrice 
= array("primo""secondo""terzo""quarto""quinto""sesto""settimo""ottavo""nono""decimo");
?>

Vogliamo che l'output dei valori memorizzati nella matrice inizi dall'ultimo elemento anzichè del primo:
Codice: Non sei autorizzato a vedere i links. Registrati o Login
<?php
$nuovoarray 
array_reverse ($matrice,TRUE);
foreach (
$nuovoarray as $valore) {
echo 
$valore "<br />";
}
?>

e questo il risultato
decimo
nono
ottavo
settimo
sesto
quinto
quarto
terzo
secondo
primo



sort()
Questa funzione ordina un array. Gli elementi saranno disposti dal più basso al più alto (A-Z)
Codice: Non sei autorizzato a vedere i links. Registrati o Login
<?php
$nuovoarray 
$matrice;
sort($nuovoarray);
for (
$i=0$i count($nuovoarray); $i++) {
echo 
$nuovoarray[$i] . "<br />";
}
?>

decimo
nono
ottavo
primo
quarto
quinto
secondo
sesto
settimo
terzo



rsort()
Questa funzione ordina una matrice in senso inverso (Z-A)
Codice: Non sei autorizzato a vedere i links. Registrati o Login
<?php
$nuovoarray 
$matrice;
rsort($nuovoarray);
for (
$i=0$i count($nuovoarray); $i++) {
echo 
$nuovoarray[$i] . "<br />";
}
?>

con questo risultato:
terzo
settimo
sesto
secondo
quinto
quarto
primo
ottavo
nono
decimo


Però ad usare le due funzioni appena viste c'è un piccolo inconveniente:
se la matrice contiene parole maiuscole e parole minuscole come in questo caso
Codice: Non sei autorizzato a vedere i links. Registrati o Login
<?php
$matrice2 
= array("primo""secondo""terzo""quarto""Quinto""Sesto""settimo""ottavo""nono""decimo");
?>
usando la funzione sort(), vedremo questo risultato, ossia un doppio elenco formato da parole che iniziano con le maiscole e da parole che iniziano con lettere minuscole

Quinto
Sesto
decimo
nono
ottavo
primo
quarto
secondo
settimo
terzo



natcasesort()
Con la funzione natcasesort() si può ordinare nella direzione A - Z una matrice in modo caseinsensitive, ossia senza tener conto delle maiuscole e delle minuscole come dimostrato dal risultato di questo codice:
Codice: Non sei autorizzato a vedere i links. Registrati o Login
<?php
$nuovoarray 
$matrice2;
natcasesort($nuovoarray);
foreach (
$nuovoarray as $valore) {
echo 
$valore "<br />";
}
?>

decimo
nono
ottavo
primo
quarto
Quinto
secondo
Sesto
settimo
terzo



array_unique()
Un'altra funzione utile è array_unique()
Questa funzione estrae da una matrice tutti i dati in maniera non ripetuta, ossia in maniera univoca.
Vediamo questa matrice:
Codice: Non sei autorizzato a vedere i links. Registrati o Login
<?php
$matrice2 
= array("primo""secondo""terzo""quarto""quinto""sesto""settimo""ottavo""nono""decimo""Quarto""Quinto""Sesto""Settimo""Ottavo""secondo""terzo""quarto""quinto""sesto");
?>

Ci sono diverse parole (stringhe) duplicate, ma attenzione anche alle parole maiuscole.........
Applichiamo la funzione
Codice: Non sei autorizzato a vedere i links. Registrati o Login
<?php
$nuovoarray 
array_unique($matrice2);
foreach (
$nuovoarray as $valore) {
echo 
$valore "<br />";
}
?>

per ottenere questo
primo
secondo
quinto
settimo
ottavo
nono
decimo
Quarto
Quinto
Sesto
Settimo
Ottavo
terzo
quarto
sesto


Come vedete i valori sono stati ridotti, ma le maiuscole persistono ancora nell'elenco finale.
Ho cercato tra le varie funzioni presenti in PHP ma non sono riuscito a trovare una funzione simile case-insensitive (cioè non sensibile al maiuscolo - minuscolo.
Se vedo che l'argomento possa interessare in un prossimo futuro posso dare una mia soluzione.


shuffle()
Ma ora chiudiamo, anche per non appesantire troppo l'argomento con una piccola chicca per gli amanti della casualità: ordinare in modo casuale una matrice
Il codice usato per questa funzione è semplice, come quelli fin qui presentati:
Codice: Non sei autorizzato a vedere i links. Registrati o Login
$nuovoarray = $matrice2;
shuffle($nuovoarray);
foreach ($nuovoarray as $valore) {
echo $valore . "<br />";
}

che restituisce una cosa del genere:
secondo
primo
Sesto
Quinto
terzo
ottavo
quarto
settimo
decimo
nono


Ma anche per questo ho un mio metodo per generare dei numeri casuali ed ordinarli in modo casuale.

Per ora termino qui, quindi  :bye:
E' stupido pensare di non aver bisogno degli altri