2012-03-11 8 views
1

配列内のキーが真であるかどうかを知る方法を教えてください。そうでない場合、この配列内のキーの条件付き表示

[0] => array 
(
[id] => 1 
[some_key] => something 
) 

[1] => array 
(
[id] => 2 
) 

[2] => array 
(
[id] => 3 
[some_key] => something 
) 

foreach($array as $value){ 
$id = $value->id; 
if($value->some_key === TRUE){ 
$some_key = $value->some_key; //some may have this key, some may not 
} 
} 

がわからないこの配列はsome_keyことを持っているかどうかを確認するために、適切な文で何を使用しないでください。チェックがない場合、エラーメッセージが出力されます。

ありがとうございます。

+0

チェックしたいキーか値ですか?あなたはキーを言っているので、値をチェックしているので。 – Bradmage

答えて

1

isset()関数を使用して、変数が設定されているかどうかを確認できます。

foreach($array as $value){ 
    $id = $value->id; 
    if(isset($value->some_key)){ 
     $some_key = $value->some_key; 
    } 
} 
2

配列$配列は、文字列または整数を指定でき、インデックスの$ some_keyを、持っている場合にはtrueを返します

isset($array[$some_key]) 

を試してみてください。

2

その他はISSET()、ほとんど作品を言及しています。

$test = array('sampleKey' => null); 
isset($test['sampleKey']); // returns false 

あなたがテストするために、このケースが重要な場合は、それを正しく扱う明示的array_key_exists()関数があります:

http://php.net/manual/en/function.array-key-exists.php

キーの下の値がただし、nullの場合は失敗します
+0

良い点。しかし、これはオブジェクト上で動作しないことに注意する価値があります。オブジェクトの場合は、property_exists()関数を使用する必要があります。http://www.php.net/manual/en/function.property-exists.php –

1
function validate($array) 
{ 
    foreach($array as $val) { 
     if(!array_key_exists('id', $val)) return false; 
     if(!array_key_exists('some_key', $val)) return false; 
    } 
    return true; 
}