2015-01-05 3 views
1

Как проверить, существует ли какой-либо из ключей в цикле foreach в значении другого массива?Как проверить два массива в одном цикле foreach?

Массив 1 Я хочу, чтобы проверить

$array1 = array(
    'a' => '1', 
    'b' => '2', 
    'c' => '3', 
); 

и массив 2, в котором массив 1 должен быть по сравнению с

$reserved_words = array('b'); 

То, что я хочу, чтобы проверить, является ли значение TRUE условная проверка применения конкретных действия. Мой код будет выглядеть так:

foreach($array1 as $key => $value) 
{ 
    // Check for reserved words 
    if(in_array($key, $reserved_words) 
    { 
     // Some action 
    } 

    // Code... 
} 

Я не могу найти что-нибудь похож на array_key_exists, наверное, я что-то отсутствует.

Я хочу, чтобы проверить это, просто сделать это:

if(array_value_exists($value, $reserved_words)) 

Но проблема в том, что ни одна array_value_exists функция не доступна.

+2

Помимо отсутствует 'как' ключевое слово, в чем проблема? –

+0

Привет, я думаю, вы ищете http://php.net/manual/en/function.array-intersect.php из того, что вы описали. Нет необходимости в цикле foreach? – Fluffeh

+0

Извините за ошибки, я печатал его на мобильном телефоне. ничего похожего на 'array_key_exists', но для проверки значений вместо ключей? – aspirinemaga

ответ

2

Вы забыли сначала ключевое слово as в своем заголовке foreach, и вы пропустили ) в своем операторе if.

Так это должно работать:

<?php 

    $array1 = array(
       'a' => '1', 
       'b' => '2', 
       'c' => '3', 
      ); 

    $reserved_words = array('b'); 

    foreach($array1 as $key => $value) { 
        //^^Here 'as' keyword 

     if(in_array($key, $reserved_words)) { 
      echo $key;     //^Here ')' closed if statement 
     } 

    } 

?> 
+0

Я сделал то же самое, но 'in_array' не работал для меня, у меня была точно такая же проверка. Повторюсь снова, я ошибался, я думаю. – aspirinemaga

+0

@aspirinemaga Скопируйте весь код из моего ответа. он должен работать! вы должны получить вывод 'b' – Rizier123

0
$array1 = array(
    'a' => '1', 
    'b' => '2', 
    'c' => '3', 
); 
$reserved_words = array('b'); 
>>> array_intersect_key($array1, array_flip($reserved_words)); 
=> [ 
    "b" => "2" 
] 
0

вам не хватает 'как' ключевое слово. Пожалуйста, поместите код, как показано ниже

foreach($array1 as $key => $val){ 
if(in_array($key, $reserved_words)){ 
    echo "yes"; 
} else { 
    echo "no"; 
} 

}

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