2016-08-01 11 views
1

Я хочу использовать массив как константу в PHP 5.6. Возникает вопрос: как проверить, существует ли в массиве ключ «a» и получить значение «Test2» true?Как определить, существует ли постоянный массив ключей PHP?

Мой код теперь так:

const ARR = array(
    'a' => 'first', 
    'b' => 'second' 
); 


$test1 = defined("ARR"); 
$test2 = defined("ARR['a']"); 

echo '<br>Test1: '; 
var_dump($test1); 

echo '<br>Test2: '; 
var_dump($test2); 

Результат:

Test1: bool(true) 
Test2: bool(false) 
+1

'$ test2 = isset (ARR ['a']);' (PHP7) –

ответ

1

Вы должны использовать array_key_exists функцию

var_dump(array_key_exists('a', ARR)); 

определенные() проверяет, является ли константа определена и ей , поэтому вы можете дополнительно проверить, является ли константа массивом с is_array(ARR);

Пример:

<?php 

const ARR = array(
    'a' => 'first', 
    'b' => 'second' 
); 


$test1 = array_key_exists('a', ARR); 
$test2 = array_key_exists('c', ARR); 

echo 'Test1: '; 
var_dump($test1); 

echo 'Test2: '; 
var_dump($test2); 

Выход:

Test1: bool(true) 
Test2: bool(false) 

Примечание:

Он будет работать только с PHP версии> = 5,6 Working fiddle

+0

А как насчет двухмерного массива? –

+0

Это то же самое, но вам нужно проверить первый размер, затем второй и т. Д. Проверьте http://stackoverflow.com/questions/19420715/check-if-specific-array-key-exists-in-multidimensional-array-php – Robert

 Смежные вопросы

  • Нет связанных вопросов^_^