Newsgroup: it.comp.www.php
Titolo: confronto tra 2 array

Come faccio a controllare la presenza di elementi diversi tra 2 array? Cioe'
vorrei un ciclo di controllo che prende 2 array, vede se gli elementi
dell'array 1 e 2 sono tutti uguali, altrimente esegue delle azioni sugli
elementi dell'array 1 in modo tale da ottenere 2 array con gli stessi
elementi.
Grazie
Marco

 ha scritto nel messaggio
news:8C%Uc.119019$G%.5629@tornado.fastwebnet.it...

Ciao,
ma scusa se il risultato è avere due array uguali perche nn ne fai
direttamente la copia?
-- 
Ciao e buon lavoro,
  Renato
---- 
Renato Eschini
   Inera srl
   Via Vespucci 41
   56100 Pisa
   Tel:         (+39) (0)50 2201218
   WWW:         
http://www.inera.it

 direttamente la copia?
Il risultato non è quello, in pratica i 2 array li ottengo 1 facendo fetch
array da una tabella di database, e l'altro con scandir su una directory
remota. Voglio in pratica controllare che i file che ho inseriti nella
tabella del database siano gli stessi che ho nella cartella, e se nella
tabella cene stanno di meno aggiungere dalla cartella quelli che mancano, se
cene stanno di piu togliere quelli che sono di troppo. Sicuramente ci sara'
un metodo banale di fare questa cosa, ma a me l'unico che era venuta in
mente era un confronto univoco tra i 2 array contenenti i nomi dei file.
Spero di essermi spiegato a dovere ;O)
Marco

 Spero di essermi spiegato a dovere ;O)
Ok :D,
controlla 
http://www.php.net/manual/en/function.array-diff.php
 se fa al caso
tuo, cmq ci sono un sacco di funzioni che ti posso servire sugli array, c'e'
anche 'equiv in italiano ;).
spero di essere stato utile ;)


 spero di essere stato utile ;)
Lo sei stato :O)
Figurati io sono veramente un niubbo sto cercando di fare una cosa del tutto
inutile solo per imparare un po ad avere a che fare con situazioni di
programmazione piu complesse. Grazie mille ora sfoglio tutto e spero di
trovare qualcosa che fa al caso mio :O)
Marco

 array? 
http://www.php.net/array_search
 
-- 
I am what I am, I do what I can
L'uomo, conscio di sbagliare, persevera.

cene stanno di piu togliere quelli che sono di troppo.
Se non ricordo male, dovrebbe esistere una funzione che, ricevuto un
certo input, dice se questo č presente o meno all'interno di un
array... prova a dare un'occhiata, spero solo di non fare confusione
con i linguaggi... :-/
In ogni modo, una soluzione potrebbe essere  un ciclo for che legge
tutti i valori dell'array "scandir": per ogni valore letto, cicla
tutta l'altro array "database" e guarda se c'č corrispondenza. Nel
caso non ci sia, aggiungi alla tabella del db la roba in piů...
Stesso sistema (ciclando prima l'array "database", poi quello
"scandir") per eliminare dalla tabella i files eventualmente non
esistenti...
Probabilmente ci sono molte soluzioni piů efficienti, ma se i files
sono in numero contenuto non dovresti avere problemi...
[cut]
-- 
Fabio Ruini
msn: 
f_r...@hotmail.com
skype: fabio.ruini - icq: 2887596
www: 
http://www.webalice.it/fabio.ruini

 cene stanno di piu togliere quelli che sono di troppo. Sicuramente ci sara'
Secondo me stai molto prima (a livello di tempo macchina) e ti rompi meno
la testa se cancelli la tabella nel db (o la svuoti, o cancelli i campi
che si riferiscono ai file) e la riempi dopo aver letto la lista da disco.
L'unico problema che mi viene in mente con un processo del genere e` che
avresti dei buchi nel db, quindi dovresti fare un vacuum ogni tanto (nel
caso di postgres) per ottimizzare lo spazio su disco e che potresti, prima
o poi, finire gli indici univoci (che comunque sono a 32 bit, 4 miliardi e
qualcosa, quindi ce ne vuole...)
Bye.

 che si riferiscono ai file)
Non posso
perchè poi per ogni file va inserito a mano un commento (non posso mica
tirarlo fuori dal nome del file :O) )
e quindi fare in quel modo mi creerebbe dei problemi nel riassociare ogni
volta il file al commento etc... cmq sono quasi vicino al risultato :O)
Marco

OK ci sono riuscito, un ciclo di qua e uno di la. Funziona. Grazie a tutti
:O)
Marco