Bonjour,

Je souhaiterais savoir si on peut vérifier si un tableaux et vide.

Exemple du tableau :

$tab = array(
'index1' => 1 
'index2' =>2
'index3' => null
)

5 réponses


betaWeb
Réponse acceptée

Salut,

empty() est une fonction native de PHP, donc de deux choses l'une : soit tu as fait une faute de frappe, soit celle-ci a été surchargé par le CMS qur tu utilises (ce qui serait francheme

Salut,
tu peux utiliser la fonction empty de php.

if (empty($tab)) {
   echo "le tableau est vide."
} else {
     echo "le tableau n'est vide."
}

Je travaille sous le CMS XenForo et cela ne marche pas

Code :

$data = $this->_input->filter(array(
            'username' => XenForo_Input::STRING,
            'msg_pres' => XenForo_Input::STRING,
            'msg_compt' => XenForo_Input::STRING,
            'msg_moti' => XenForo_Input::STRING,
            'msg_pkv' => XenForo_Input::STRING
        ));

        $error = null;

        if(!empty($_POST)) {

            if(empty($data))
            {
                $error = 'ok';
            }
            else
            {
                $error = 'nn';
            }
        }

Qu'affiche

var_dump($data);
die();

Salut,

je ne connais pas XenForo mais je suis étonné qu'empty ne fonctionne pas.

Au pire tu peux peut-être écrire ta propre fonction :

function my_empty(array $arr)
{
    foreach ($arr as $key => $value)
    {
        if ($value !== null)
        {
            return false;
        }
    }

    return true;
}

$tab1 = ['plop1' => 'bidou'];
$tab2 = ['plop2' => null];
$tab3 = ['plop3' => ''];
$tab4 = [];

var_dump(my_empty($tab1));
var_dump(my_empty($tab2));
var_dump(my_empty($tab3));
var_dump(my_empty($tab4));

affiche :

false
true
false
true

Et tu modifies la fonction pour qu'elle convienne à tes besoins.

Si tu veux que "$tab3" retourne "true", il faut modifier le if :

// remplacer
if ($value !== null)

//par
if ($value)