2017-06-04 1 views
0

Est-ce que la bibliothèque PHP a une fonction permettant de vérifier si tous les champs requis sont définis dans un tableau? Par exemple:Y at-il une fonction PHP qui vérifie que les champs sont définis dans un tableau?

function required_fields($vals,$required_fields_names){ 
    for($i = 0; $i < count($required_fields_names); $i++){ 
     if(!array_key_exists($required_fields_names[$i],$vals)){ 
      return false 
     } 
    } 
    return true; 
} 

Existe-t-il déjà une fonction/méthode PHP native qui le fait?

+1

Non. Bien que les chances sont c'est un peu plus rapide et plus facile à lire avec un foreach. – pvg

+1

Pas vraiment. Sur une note de côté, une clé peut exister mais sa valeur peut être vide ou nulle. –

Répondre

1

array_difference est la fonction intégrée le plus proche pour cela:

function required_fields($vals,$required_fields_names){ 
    $missing_fields = array_difference($required_fields_names, array_keys($vals)); 
    return empty($missing_fields); 
} 
1

NON, il n'y a pas de méthode native.

Mais vous pouvez améliorer ce code.

<?php 

function check_keys($keys,$array) { 
    foreach ($keys as $key) { 
     if(!array_key_exists($key, $array)) { 
      return false; 
     } 
    } 
    return true; 
} 

# Test Zone 

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

$b = ['a','b','c']; 
$c = ['a','b']; 
$d = ['a','b','d']; 


echo (int) check_keys($b,$a).'</br>'; # 1 
echo (int) check_keys($c,$a).'</br>'; # 1 
echo (int) check_keys($d,$a).'</br>'; # 0 
?>