Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [php - array] Verificare valori uguali.

    Ciao!

    Ho un form con un numero determinato di campi input testo (12).
    Tutti però sono fanno riferimento allo stesso argomento, corrispondono cioé al nome di un file immagine, questo perché vorrei creare la possibilità di rinominare ogni singolo file.

    Ho quindi i campi con lo stesso nome, ma con contenuto differente, che mi vanno a finire, tramite il form, in un array.

    Come posso fare in modo di verificare che non ci siamo due campi di testo con lo stesso contenuto, tramite PHP?

    Impedire cioè che per errore si inserisca lo stesso nome per due immagini diverse e bloccare l'invio dati?
    :master:

    Spero in un qualche suggerimento.
    Grazie anticipatamente.
    Buona notte!

  2. #2
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    Codice PHP:
    <?php
    /* 
    utilizzo:

    voglio sapere se ci sono diversi aghi in pagliaio
    echo is_duplicate($ago,$pagliaio)    restituisce true/false

    voglio sapere se ci sono diversi aghi in pagliaio e ripulire l'array
    $out= is_duplicate($ago,$pagliaio,true)    restituisce un $out è l'array filtrato

    */
    $array_test=array('a'=>1,'b'=>2,'c'=>3,'d'=>1);

    echo (
    is_duplicate(1,$array_test))?'diverse occorrenze trovate':'valore singolo'// restituisce  diverse occorrenze trovate

    $pruned=is_duplicate(1,$array_test,true);
    echo 
    "<pre>";print_r($pruned);echo "</pre>";



    function 
    is_duplicate($value,$inarray,$prune=false)
      {
      
    $finded="";
      foreach(
    $inarray as $k=>$v)
        {
        if (
    $v == $value)
          {
          if(
    $finded == "")             {$finded $k;continue;}
          if (
    $prune && $finded !="")   {unset($inarray[$k]);continue;}   
          if(
    $finded !="")              {return true;}
          }
        }
      if (
    $prune) return $inarray;
      return 
    false;
      }
    ?>
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  3. #3
    Accidenti!
    Confidavo nella risposta di qualche forumista, ma non mi sarei mai aspettato un contributo così dettagliato.
    Intanto mille grazie!
    Ora bisogna vedere se riuscirò a non fare troppa confusione nell'adattarlo e inserirlo nel mio script!
    Grazie ancora e buona giornata!
    Ciao, ciao!

  4. #4
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    non dovresti avere problemi, è una singola funzione e la puoi 'azzeccare a qualsiasi codice'

    sta a te sfruttarla a tuo piacimento

    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  5. #5

  6. #6
    Purtroppo la funzione che mi hai segnalato non ha fruttato i risultati sperati e forse non era esattamente quello che stavo cercando.

    Ho comunque risolto in questo modo:

    for ($i=0, $a=1; $i<count($nome), $a<count($nome) ;$i++, $a++) {
    if ($nome[$i] == $nome[$a]) {
    echo "CI SONO DUE FILE UGUALI
    ";
    echo "$nome[$i] è uguale a $nome[$a]";
    die;
    }
    }


    dove $nome è l'array in cui vengono memorizzati tutti i campi di testo input con il nome dell'immagine.
    Facendo in questo modo controllo se all'interno dello stesso array $nome ci sono per caso due valori uguali (cioé $nome[0] con $nome[1], $nome[1] con $nome[2]...).

    Se dovessero esserci due valori uguali allora segnalo l'errore e fermo il ciclo.
    Grazie comunque!

    Ciao, ciao!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.