Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di james
    Registrato dal
    Jun 2002
    Messaggi
    1,481

    verificare se un array multidimensioanle è vuoto

    Come faccio a sapere se un array multidimensionale ha almeno un valore diverso da carattere vuoto?

    Ho una cosa del tipo
    $vettore['pippo'] = '';
    $vettore['pluto'] = '';
    $vettore['topolino'] = '';
    $vettore['paperino'] = '';

    c'è una funzione che mi verifica ogni valore di $vettore e controlla se c'è almeno un valore diverso da carattere vuoto? O devo per forza fare una scansione dell'array con un for e fare un controllo a mano?

  2. #2

    "Chi non è in grado di riconoscere la piccolezza delle grandi cose che ha in sè, tende a trascurare la grandezza delle piccole cose negli altri."

  3. #3
    Utente di HTML.it L'avatar di james
    Registrato dal
    Jun 2002
    Messaggi
    1,481
    Originariamente inviato da Sarachan
    http://it2.php.net/manual/it/function.empty.php

    ma questa funzione la posso usare nel ciclo for each per ogni valore, non per l'intero array, giusto?

  4. #4
    No, puoi usarla anche per l'array intero, se guardi nella pagina che ti ho segnalato al paragrafo "Valori restituiti" c'è come esempio anche un array: se la matrice è vuota la funzione ritorna TRUE.

    Altrimenti può aiutarti anche questa funzione http://it2.php.net/manual/it/function.array-filter.php. Se non metti nessuna funzione di callback, la funzione array_filter ti restituisce l'array filtrato da tutti i valori vuoti (guarda l'Esempio 2). A questo punto puoi fare la count sull'array ritornato per vedere se è rimasto qualche elemento non vuoto o no.

    Ciao

    "Chi non è in grado di riconoscere la piccolezza delle grandi cose che ha in sè, tende a trascurare la grandezza delle piccole cose negli altri."

  5. #5
    Utente di HTML.it L'avatar di james
    Registrato dal
    Jun 2002
    Messaggi
    1,481
    Originariamente inviato da Sarachan
    No, puoi usarla anche per l'array intero, se guardi nella pagina che ti ho segnalato al paragrafo "Valori restituiti" c'è come esempio anche un array: se la matrice è vuota la funzione ritorna TRUE.

    Altrimenti può aiutarti anche questa funzione http://it2.php.net/manual/it/function.array-filter.php. Se non metti nessuna funzione di callback, la funzione array_filter ti restituisce l'array filtrato da tutti i valori vuoti (guarda l'Esempio 2). A questo punto puoi fare la count sull'array ritornato per vedere se è rimasto qualche elemento non vuoto o no.

    Ciao
    la empty mi da sempre false, anche se il vettore è vuoto, ho provato anche ad usarlo così:
    Codice PHP:
    $vettore['prova'] = '';
    if (empty(
    $vettore['prova'])) {
    echo 
    '0, empty, or not set at all';

    e la condizione non mi passa, è normale??

  6. #6
    Utente di HTML.it L'avatar di james
    Registrato dal
    Jun 2002
    Messaggi
    1,481
    mea culpa, come non detto, scusate

  7. #7
    Comunque, ti conviene usare array_filter, senza fare cicli for sugli elementi dell'array:
    Codice PHP:
    $vettore['prova1'] = '';
    $vettore['prova2'] = '';
    $vettore['prova3'] = '';
    $vettore_filtrato array_filter($vettore);
    if (
    count($vettore_filtrato))
        echo 
    'il vettore_filtrato contiene elementi';
    else
        echo 
    'il vettore_filtrato non contiene elementi'
    HTH


    "Chi non è in grado di riconoscere la piccolezza delle grandi cose che ha in sè, tende a trascurare la grandezza delle piccole cose negli altri."

  8. #8
    Utente di HTML.it L'avatar di james
    Registrato dal
    Jun 2002
    Messaggi
    1,481
    Originariamente inviato da Sarachan
    Comunque, ti conviene usare array_filter, senza fare cicli for sugli elementi dell'array:
    Codice PHP:
    $vettore['prova1'] = '';
    $vettore['prova2'] = '';
    $vettore['prova3'] = '';
    $vettore_filtrato array_filter($vettore);
    if (
    count($vettore_filtrato))
        echo 
    'il vettore_filtrato contiene elementi';
    else
        echo 
    'il vettore_filtrato non contiene elementi'
    HTH

    Grazie del consiglio, ho usato questa soluzione

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.