2016-12-01 3 views
-2

Я пытаюсь как-то разобраться в своем сайте. Это не мой код, просто пример, чтобы было легче понять, что я имею в виду.Соответствие строки с ключом массива

Допустим, у меня есть массив как это:

$services = array(
    Marketing => marketing:342343423423, 
    Sales => sales:779876786, 
) 

И я имею форму на моем сайте. Я могу получить опубликованные значения с запросом POST.

Запрос POST, например, может выглядеть следующим образом

$_POST['service_request'] 

Теперь то, что я хочу знать, как сделать следующий:

если $_POST['service_request'] совпадает с одним из ключей массива внутри $services затем распечатать соответствующее значение этого массива.

Так что скажем, что пользователь заполняет мою форму, и его запрос на обслуживание является маркетингом, тогда я хочу проверить, существует ли этот запрос службы внутри переменной $service, и если она существует, напечатайте значение.

+3

[ 'array_key_exists'] (http://php.net/array_key_exists) –

ответ

7

использование key_exists функция php.

if(key_exists($_POST['service_request'],$services)){ 
    //exists, perform rest of the logic here. 
} 

Update: это псевдоним array_key_exists так как в основном одинаковы.

+0

Нету это псевдоним @Jay – Clive

+0

My bad @clive. Еще не закончил свою первую чашку кофе ;-) –

+0

Привет, спасибо за ваш ответ. Обычно, когда я хочу напечатать значение массива, я делаю это как print_r ($ test ['key']) может ли часть внутри [] быть POST-запросом? например print_r ($ test [$ _ POST ['myfield']])? –

2

Редактировать: Приведенный ниже код может дать исключение, если ключ не установлен. Вы должны использовать key_exists, указанные в другом ответе. Или изменить его на:

if (isset($services[$_POST['service_request']])) { 
    echo $services[$_POST['service_request']]; 
} 

Этот код будет выводить значение из массива с заданным ключом:

$value = $services[$_POST['service_request']]; 
echo (isset($value) ? $value : ''); 
+2

Зачем нужно« OP »попробовать «? *** Хороший ответ *** всегда будет объяснять, что было сделано и почему это было сделано таким образом, не только для OP, но и для будущих посетителей SO. –

+1

МОЖЕТ ВЫИГРАТЬ НЕОПРЕДЕЛЕННЫЙ СМЕЩЕНИЕ, если значение не существует –

+0

Забыл об этом, мой плохой. –

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