Confrontare Variabile con Array

intimoviro

Utente Attivo
18 Ago 2009
272
0
0
Salve ragazzi, ho bisogno di confrontare tutti i valori contenuti in un array con una variabile, in giro ho trovato questo codice, non so se è corretto, potete aiutarmi?

Il codice:

PHP:
$var1= lunghezza array
$variabile= var da confrontare

//non capisco qui cosa significa:$i&lt
for($i=0;$i<$var1;$i++) {
if ($array[$i]=="$variabile") { echo"E' UGUALE"; }
else { echo"E' DIVERSO"; }
}

Grazie
 
Non so chi abbia scritto quel codice ma non ci vuole un genio per capire che non se ne intendeva un granché di PHP. Tu hai bisogno di controllare se ogni elemento dell'array è uguale al valore di una variabile oppure se quell'array contiene un elemento con il valore di una variabile? Nel primo caso fai così:
PHP:
<?php
$var = 'prova';
$array = array('prova', 'prova1', 'prova', 'prova2', 'prova3');

foreach($array as $i => $a)
{
  if($a == $var) { echo "L'elemento {$i} è uguale a {$var}."; }
  else { echo "L'elemento {$i} non è uguale a {$var}."; }
}
?>
Nel secondo caso basta fare così:
PHP:
<?php
$var = 'prova';
$array = array('prova', 'prova1', 'prova', 'prova2', 'prova3');

if(in_array($var, $array))
  echo "L'array contiene un elemento che corrisponde a {$var}.";
else
  echo "L'array non contiene elementi che corrispondono a {$var}.";
?>
In nessun caso c'è bisogno di usare quella blasfemia che hai postato :D
 
Senti a me serve il primo caso, e ho fatto così, ma con scarsi risultati:

PHP:
$q = "SELECT * FROM products_options_values";
$s = mysql_query($q) or die (mysql_error());
while ($row = mysql_fetch_array($s)){
      $variante = $row['products_options_values_name'];
}
//params['Variante1'] corrisponde ad un'array
$array = explode(",", $params['Variante1']);  
foreach($array as $i => $a)
{ 
 
if($a == $variante){
//eseguo un'istruzione
}else{
//eseguo un'altra istruzione
}

Però non esegue correttamente il tutto.
 
A parte il fatto che non ho capito perché usi il while per recuperare i dati: in ogni caso recupererà l'ultima riga della tabella. Sarebbe andato bene se per ogni riga dovevi fare il confronto. E poi se $params['Variante1'] è un array perché usi explode che genera un array?!
 
Grazie per la risposta, potresti farmi un'sempio pratico così capisco meglio?

Grazie

Cosa dovrei usare al posto del while?
 
Allora tramite un form vengono inviate delle taglie che richiamo così: $params[Variante1']
nel file che riceve il parametro. Poi devo fare un controllo nel database nella tabella products_options_values e vedere se i valori contenuti nell'array Variante1 sono uguali ai valori nel database.
Se sono uguali deve effettuare una funzione, se diversi deve inserire i valori contenuti nell'array nel database nella tabella products_options_values

Spero di essere stato abbastanza chiaro.

Grazie
 

Discussioni simili