Eliminare valori array

intimoviro

Utente Attivo
18 Ago 2009
272
0
0
Salve ragazzi, ho un'array che contiene tot valori, ora vorrei controllare se nei valori dell'array è contenuto il valore che corrisponde al valore di una variabile, se si bisogna eliminare tutti i valori tranne uno, in modo che non inserisce nel database lo stesso valore piu volte, cioè cerco di spiegarmi meglio:

$array = array(1,2,3,1,1);

ora vorrei controllare se nell'array è contenuto un valore che corrisponde a questa variabile $num che è uguale a 1.

Se corrisponde vorrei eliminare i valori superflui, cioè facendo diventare l'array in questo modo:

$array = array(1,2,3);


E' possibile?

Grazie
 
PHP:
<?php
$array = array(1,2,3,1,1);
$num = 1;
if (in_array($num, $array)) {
    $result = array_unique($array);
}
?>
 
ciao
però array_unique non dovrebbe funziare ance se ho un array del tipo

$a=array('1','1','2','3','3');

riducendola a

'1','2','3' solamente?

il tuo sistema funzia se so a priori quale è il valore duplicato
 
L'obiezione è corretta Borgo, ma Intimoviro chiedeva il sistema per eliminare i doppioni di uno specifico valore associato ad una variabile.
 
SALVE RAGAZZI, VI POSTO PROPRIO IL CODICE:

PHP:
$q = "SELECT * FROM products_options_values WHERE products_options_values_name = '".$_POST['Variante1']."' && products_options_values_name = '".$_POST['Variante2']."'";
$s = mysql_query($q) or die (mysql_error());
while ($row = mysql_fetch_array($s)){
      $variante[] = $row['products_options_values_name'];
}
$array1 = explode("," ,$_POST['TipoVariante1']); 

$array2 = explode("," ,$_POST['Variante1']); 
$array = array_merge($array1, $array2);

$array = $array;
 $var2=count($array); 
$res = false;

for($i=0;$i<$var2;$i++)
{
if ($array[$i]==$variante[$i])
    {
$res1=true;
    }
} 
if($res1 == false)
{

$q = "SELECT * FROM products_options WHERE products_options_name = '".$_POST['TipoVariante1']."'";
$s = mysql_query($q);
while ($row = mysql_fetch_array($s)){
$vari = $row['products_options_id'];
}
//$vari1 preleva l'id delle varianti 
$vari1 = setstockvar($params['Variante1']);
$pid = $_POST['Model'];

$query = "INSERT INTO products_attributes (products_attributes_id, products_id, options_id, options_values_id, product_attribute_is_free, attributes_discounted, attributes_price_base_included) VALUES ('', '$pid', '$vari', '$vari1', '1', '1', '1')";
$insert = mysql_query($query);
   if(!$insert) die(mysql_error());

}

};

Grazie
 
ciao
il codice può abdare anche bene, ma quale è l'arrayi che vuoi "inicare"?

$array1 = explode("," ,$_POST['TipoVariante1']); //??
$array2 = explode("," ,$_POST['Variante1']); //??
$array = array_merge($array1, $array2); //??
 
ciao
mi sembrava chiaro, tu nel primo post chiedi

Salve ragazzi, ho un'array che contiene tot valori, ora vorrei controllare se nei valori dell'array è contenuto il valore che corrisponde al valore di una variabile, se si bisogna eliminare tutti i valori tranne uno, in modo che non inserisce nel database lo stesso valore piu volte, cioè cerco di spiegarmi meglio:

$array = array(1,2,3,1,1);

ora vorrei controllare se nell'array è contenuto un valore che corrisponde a questa variabile $num che è uguale a 1.

Se corrisponde vorrei eliminare i valori superflui, cioè facendo diventare l'array in questo modo:

$array = array(1,2,3);


E' possibile?

Grazie

poi invii uno script in cui ci sono tre array, mi pare logica la domanda di quale vuoi trattare
 
ciao
allora basta che tu faccia

PHP:
$array2 = explode("," ,$_POST['Variante1']);
$array2 = array_unique($array2);

per cui (ad es.) se $array2 che viene dal post contiene
'XL', 'M', 'ML', 'XL', 'XL', 'XM', 'L', 'L'
il suo contenuto diventa

'XL', 'M', 'ML', 'XM', 'L'

cioè togli tutti i valori duplicati
per abbreviare potresti anche provare a fare

PHP:
$array2=array_unique(explode(",",$_POST['Variante1']));
 

Discussioni simili