Условное отображение ключа в массиве - PullRequest
1 голос
/ 11 марта 2012

Как узнать, является ли ключ в массиве истинным? Если нет, то не используйте это

[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. Если у меня нет чека, он выдаст сообщение об ошибке.

Заранее спасибо.

Ответы [ 4 ]

2 голосов
/ 11 марта 2012

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

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

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

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

2 голосов
/ 11 марта 2012

Try

isset($array[$some_key])

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

1 голос
/ 11 марта 2012
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;
}
1 голос
/ 11 марта 2012

Вы можете использовать функцию isset(), чтобы увидеть, установлена ​​ли переменная.

foreach($array as $value){
    $id = $value->id;
    if(isset($value->some_key)){
        $some_key = $value->some_key;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...