Ciclo su array con valorui dispari

Monital

Utente Attivo
15 Apr 2009
778
2
18
Buonasera,

piccolo quesito:

Ho due variabili array contenenti numeri inter e devo conforntarle e prendere la pi grande quindi se

$a=6 e $b=7 devo usare $b epr il ciclo

in questo ciclo quando gli elemnti sono in numero dispari devo compiere due azioni lasciando in coda l'ultimo.

$valore[];///[0]=>Antonio,[1]=>Michele,[2]=>Giovanni,
for($x=0;$x=$b){
$newvalore= $valore[$x] +1;
}

cosi mi aggiunge 1 per tutti gli elementi mentre io voglio che si fermi al'ultimo pari quindi al [5] ed aggiungere un +1 da [0] a [5] mentre al [6] deve aggiungermi +2

tutto considerando che le variabili $a e $b mi arrivano da un conteggio precedente quindi non le conosco a priori.


penso che non dovrebbe essere difficile come cosa ma sui cilci for quando sono più complessi ci sbatto il muso

grazie
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
se non ho capito male
PHP:
<?php
//valore di $b
$cicla=(int)($b/2)*2;// es se $b = 6 $cicla = 6 se $b =7 $cicla = sempre 6
for($k=0;$k < $cicla; $k++){
	$newvalore= $valore[$k] +1;
}
if($b%2 != 0){$valore[$b]+2;}//$b è dispari
?>
 

Monital

Utente Attivo
15 Apr 2009
778
2
18
mmh si più o meno

ma forse mi sono spiegato male o probabilemnte sto formulando amle il codice
provo a aspiegare meglio cosa voglio fare

ho due array

$uomini------------->///[0]=>Antonio,[1]=>Michele,[2]=>Giovanni
$donne------------->///[0]=>Isabella,[1]=>Rosa,[2]=>Carmela,[3]=>Francesca,[4]=>Michelina


ora devo inseirre nel database, le coppie uomini - donne (coppia) in funzione delle chiavi e le restanti. (single)
uomini[0] - donne[0] = Antonio - Isabella
uomini[1] - donne[1] = Michele- Rosa
uomini[2] - donne[2] = Giovanni - Carmela

e nel database Single quello che rimane

donne[3]=Francesca
donne[4]=Michelina

ho fato cosi intanto

PHP:
//definisco il valore maggiroe da ciclare
if(donne>$uomini){
$val=count($donne);
}else{
$val=count($uomini);
}

for($x=0;$x<$val;$x++){

$nome_uomo=$uomini[$x];
$nome_donna=$donna[$x];

$sqlquery = "INSERT INTO Tabella VALUES('','Coppia','".$nome_uomo."','".$nome_donna."'')";
$result=mysql_query($sqlquery);
}
cosi mi restituisce
INSERT INTO Tabella VALUES('','Coppia','Antonio','Isabella')
INSERT INTO Tabella VALUES('','Coppia','Michele','Rosa')
INSERT INTO Tabella VALUES('','Coppia','Givoanni','Carmela')
INSERT INTO Tabella VALUES('','Coppia','','Francesca')
INSERT INTO Tabella VALUES('','Coppia','','Michelina')

e diciamo che mi potrebbe anche andar bene ma ho la necessita che Francesca e michelina invece di coppia devonoa vere Single in quel campo
INSERT INTO Tabella VALUES('','Single','','Francesca')
INSERT INTO Tabella VALUES('','Single','','Michelina')

In pratica potevo sfruttare le chiavi della serie

"Se trovi le coppie uguali ---------->fai un insert, dove non c'è corrispondenze--------->fai un altro tipo di insert

quindi probabilmente sto sbagliando il ragionamento alla base
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Prova con qualcosa di questo genere.
Non l'ho testata.
PHP:
//definisco il valore MINORE da ciclare 
if($donne<$uomini){ 
$val=count($donne); 
$val2=count($uomini);
}else{ 
$val=count($uomini); 
$val2=count($donne);
} 

for($x=0;$x<$val;$x++){ 

$nome_uomo=$uomini[$x]; 
$nome_donna=$donna[$x]; 

$sqlquery = "INSERT INTO Tabella VALUES('','Coppia','".$nome_uomo."','".$nome_donna."'')"; 
$result=mysql_query($sqlquery);
}  
while($x<$val2){
if(array_key_exist($x,$uomini))
$nome=$uomini[$x];
else
$nome=$donne[$x];
$sqlquery = "INSERT INTO Tabella VALUES('','Single','".$nome."')"; 
$result=mysql_query($sqlquery);
$x++;
}
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
potresti provare fare anche così
PHP:
<?php
//..........
$minore=min(count($uomini), count($donne));
$maggiore=max(count($uomini), count($donne));
for($k=0; $k< $minore; $k++){
	$query="INSERT INTO tabella(campo_1,campo_2,campo_3) VALUES('coppia','".$uomini[$k]."', '".$donne[$k]."')";
	mysql_query($query);
	unset($uomini[$k]);
	unset ($donne[$k]);
}
for($j=$minore; $j <$maggiore;$j++){
	if(is_array($uomini)){//in questo modo metto tra i single o gli uomini o le donne in eccesso
		$da_ins=$uomini[$j];
	}elseif(is_array($donne)){
		$da_ins=$donne[$j];
	}
	$query="INSERT INTO tabella(campo_1,campo_2,) VALUES('single','$da_ins')";
	mysql_query($query);
}
//..........
?>
 

Monital

Utente Attivo
15 Apr 2009
778
2
18
ciao
potresti provare fare anche così
PHP:
<?php
//..........
$minore=min(count($uomini), count($donne));
$maggiore=max(count($uomini), count($donne));
for($k=0; $k< $minore; $k++){
	$query="INSERT INTO tabella(campo_1,campo_2,campo_3) VALUES('coppia','".$uomini[$k]."', '".$donne[$k]."')";
	mysql_query($query);
	unset($uomini[$k]);
	unset ($donne[$k]);
}
for($j=$minore; $j <$maggiore;$j++){
	if(is_array($uomini)){//in questo modo metto tra i single o gli uomini o le donne in eccesso
		$da_ins=$uomini[$j];
	}elseif(is_array($donne)){
		$da_ins=$donne[$j];
	}
	$query="INSERT INTO tabella(campo_1,campo_2,) VALUES('single','$da_ins')";
	mysql_query($query);
}
//..........
?>


perfetto è esattamente quelloc he mi serviva.

Non ho dovuto modificare niente se non il nome della variabile

thank
 
Discussioni simili
Autore Titolo Forum Risposte Data
A [risolto] caricare con un ciclo For dei file PHP inclusi in una variabile array PHP 3
F [risolto] Ciclo di un array con azioni diverse PHP 26
B ciclo con array, assegnare una classe differente per ciascun risultato PHP 3
O array multi dimensionale con ciclo for PHP 6
S [PHP] Ciclo foreach su più array PHP 2
V Generare array da ciclo while e prendere valori casuali PHP 4
S [risolto] Aiuto: ciclo php ( for / while). popolare select dinamicamente da array id. PHP 9
L gestire array per radio-checkbox in ciclo while PHP 2
A estrarre il ciclo while in una sessione e spedire l'array in un db PHP 2
A A capo in un'array dentro ad un ciclo PHP 9
catellostefano 2 array 1 ciclo PHP 8
benfy85 array di array in un ciclo for PHP 8
P Stampare array senza usare ciclo while PHP 1
B Completare il seguente ciclo affinché stampi tutto l’array al contrario PHP 3
W MySQL ciclo in SELECT MySQL 0
E Inviare variabile a PHP da ciclo in JS Javascript 0
I Eecuzione di javascript in ciclo foreach php. PHP 7
W fare la somma di un valore estratto da un ciclo while Classic ASP 0
motleyrulez Aiuto con un ciclo PHP 0
B [PHP] formula e ciclo PHP 5
M [PHP] Come inserire codice html in un ciclo while PHP 2
T con oop creare un ciclo per una pagina dinamica html con php PHP 3
G [PHP] totale per ogni id di un ciclo PHP 1
P Incrementare nodo in ciclo for-each XML 6
M UPDATE non aggiorna db se lo inserisco in un ciclo Database 1
N [PHP] Controllare condizione ciclo While PHP 9
maxnegri [PHP] Eliminare risultati duplicati da ciclo foreach ottenuti da una select php mysqli PHP 18
N [PHP] Registrare variabili all'interno di un ciclo PHP 3
MattiaBL [PHP] Problema ciclo while PHP 3
V Ciclo for per Pulsante in JavaScript Javascript 7
elpirata [PHP][RISOLTO] Sommare gli importi estratti da un ciclo while PHP 3
C [PHP] Ciclo for dinamico PHP 14
gandalf1959 [PHP] query all'interno di un ciclo while PHP 3
Z [PHP] ciclo for PHP 9
valvasori [PHP] Problema ciclo for PHP 12
A [PHP] metodo di una classe per estrarre i dati con ciclo while PHP 1
H [PHP] Ciclo per calcolare i chilometri PHP 4
S [PHP] Recupero più dati da form realizzata ciclo FOR PHP 5
gandalf1959 [PHP] ciclo while non scrive dove dovrebbe... PHP 2
Monital [PHP] ciclo su un file json molto grande PHP 1
M [PHP] Errore in ciclo foreach PHP 1
O Ciclo non visualizzato PHP 1
M problema ciclo javascript Javascript 4
G Ciclo if php per far comparire un pulsante solo nel caso in cui una variabile sia 0 PHP 2
F Problema codice in un ciclo while PHP 2
T ciclo $.each non va jQuery 4
I tabella con ciclo, recupero dati PHP 3
Monital Problema con un ciclo for. PHP 1
M Problema con ciclo foreach per chiusura apertura div in base al numero di record in database PHP 1
S Ciclo PHP molto complesso PHP 2

Discussioni simili