2016-04-15 62 views
1

有沒有更簡單,更聰明,更清晰的方式來寫這個?如何檢查多個數組鍵是否存在?

if (array_key_exists("name",$array) AND array_key_exists("age",$array) AND array_key_exists("size",$array) AND array_key_exists("gender",$array){ 
     echo "Keys exist!"; 
    } 
+1

可能去'in_array()'和'array_keys()' – Rizier123

+0

HTTP:/ /stackoverflow.com/questions/13169588/how-to-check-if-multiple-array-keys-exists –

+0

'$ keys = ['name','age','size','gender']; $ existCount = count(array_intersect_key(array_flip($ keys),$ array))== count($ keys);' –

回答

4

簡單地使用isset(),一種語言結構。

語言構造比函數快得多。

<?php 
$findKeys = array('name', 'age', 'size', 'gender'); 
if (! empty($findKeys) && ! empty($array)) { 
    foreach ($findKeys as $findKey) { 
     if (isset($array[$findKey])) { 
      echo 'Keys exist!'; 
     } 
    } 
} 

說明:

1)創建4個按鍵組成的數組,你需要找到。

2)遍歷這個數組並使用isset()來確定key(元素)是否存在。

1

使用也可以用這樣的方式..

<?php 
function array_keys_exist($keys, $array){ 
    foreach($keys as $key){ 
     if(!isset($array[$key]))return false; 
    } 
    return true; 
} 
?> 
1

你可以這樣說:

<?php 

$array = array(
    'index1'=>'value1', 
    'index2'=>'value2', 
    'index3'=>'value3' 
); 

$indexesToSearch = array('index1', 'index2'); 

if(count(array_intersect(array_keys($array), $indexesToSearch)) == count($indexesToSearch)) 
{ 
    // ... do something 
}