2012-03-11 3 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

Попробуйте

isset($array[$some_key]) 

Он возвращает истину, если массив $ массив имеет индекс $ some_key, который может быть строкой или целым числом.

2

Другие упоминали Исеть(), которая в основном работ. Это не сработает, если значение под ключ является недействительным, однако:

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

Если этот случай имеет важное значение для вас, чтобы проверить, есть явное array_key_exists() функция, которая обрабатывает его правильно:

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

+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; 
} 
Смежные вопросы