Visualizzazione dei risultati da 1 a 5 su 5

Discussione: aiuto per array

  1. #1

    aiuto per array

    Salve da come titolo ho bisogno della vostra esperienza e capacità sugli array.

    devo eliminare un elemento in un array ad esempio supponiamo che $arr è l'array:

    Codice PHP:
    $dato=trim($_GET["dato"]);
    $pos=array_search($dato,$arr);
    unset(
    $arr[$pos]); 
    ok qui ci siamo l'elemento viene eliminato dall'array ma non capisco il perchè la chiave vi rimane.
    Cioè mi spiego se faccio questo:
    Codice PHP:
    foreach($arr as $key => $new){
    echo 
    "$key => $new";

    mi da questo:
    0 =>
    1 => 1
    2 => 2
    ...

    quindi come vedete il key esiste ancora mentre non cè + il suo valore.
    come faccio per eliminare anche la key?

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    Prova così e posta il risultato:

    Codice PHP:
    $arr = array(012); // o quel che è 
    $dato 0// o quel che è

    function DumpVar($var) {
      if (
    is_array($var)) {
        
    $array $var;
        foreach(
    $array as $key => $val){ 
          print 
    $key.' = '.var_export($valtrue).'

    '
    ;
        };
      } else {
        print 
    var_export($vartrue).'

    '
    ;
      };
      print 
    '


    '
    ;
    };


    DumpVar($arr);
    DumpVar($dato);

    $pos=array_search($dato,$arr); 
    unset(
    $arr[$pos]);

    DumpVar($arr); 
    A me funziona benissimo... prova a mettere i tuoi valori e riprova...

  3. #3
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    MI sa che ti conviene usare un secondo array tampone.

    1- crea array tampone vuoto
    2- scorri array principlae ed esegui push dei dati in array tampone
    3- sovrascrivi array iniziale con array tampone.

    ATTENZIONE : se usi array normali gli indici verranno reimpostati.
    Per evitare questa situazione dove fare... beh quello che succede con unset ... ossia mantenere l'indice ma con valore => false ... o nullo .. e quindi ti conviene usare l'unset e controllare che il valore esista.

  4. #4
    Utente di HTML.it L'avatar di _debo
    Registrato dal
    Mar 2012
    residenza
    London, UK
    Messaggi
    858
    Ciao Techno a meno che tu stia omettendo qualcosa nella tua spiegazione o tu stia usando un versione di PHP che possa avere un bug, di cui in questo momento non ho memoria, quello che hai postato non dovrebbe avere motivo di esistere. Come Eiyen ho fatto un prova sia con indici numerici che indici stringa e tutto funziona come previsto. Che versione di PHP stai usando?

  5. #5
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    probabilmente c'e' qualche problema nella fase di spedizione dei dati dal form

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 © 2024 vBulletin Solutions, Inc. All rights reserved.