1

私はこの配列を持っています:

$array = array('a' => 'value of a', 'b' => 'value of b', 'c' => 'value of c',
    'd' => 'value of d');

このアイテムのリスト:

$items = array ('a' => 'value','b'=> 'value','c'=> 'value','d'=> 'value');

$items のキーの少なくとも 1 つが $array に存在するかどうかを確認したい場合は、1 つの / availableones とその値を含む配列を返します。

これは私がこれまでに試したことですが、うまくいきません:

if (array_key_exists('a', $array) || array_key_exists('b', $array)
    || array_key_exists('c', $array) || array_key_exists('d', $array)) { 
}

任意の助けをいただければ幸いです。

ありがとう

4

4 に答える 4

7

必要なのは、2 つの配列間のキーの共通部分です。と呼ばれる素晴らしい関数がありますarray_intersect_key()

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

$array = array('a' => 'value of a', 'b' => 'value of b', 'c' => 'value of c', 'd' => 'value of d');
$items = array ('a' => 'value','b'=> 'value','c'=> 'value','d'=> 'value');

print_r(array_intersect_key($array, $items));
于 2013-08-08T17:45:00.457 に答える
0

これはあなたが探しているものですか?

function search_keys($needle, $haystack) {
    $matches = array();
    foreach($needle as $key => $value) {
        if(array_key_exists($key, $haystack)) {
            $maches[$key] = $haystack[$key];
        }
    }
    return $matches;
}

$matches = seach_keys($items, $array);
于 2013-08-08T17:41:11.380 に答える
0

次のような関数を作成します。

function check_keys ($items, $array){
    $return = false;
    foreach (array_keys($items) as $key){
        if (isset($array[$key])){
            $return = true;
            break;
       }
    }
    return $return;
}

次のように呼び出します。

// returns true or false
var_dump (check_keys ($items, $array));
于 2013-08-08T17:41:55.363 に答える
0

あなたはおそらくこのようなものが必要です

$array = array('a' => 'value of a', 'b' => 'value of b', 'c' => 'value of c', 'd' => 'value of d');
$items = array ('a' => 'value','b'=> 'value','c'=> 'value','d'=> 'value');

foreach($items as $key=>$value){
 if (array_key_exists($key,$array)){

  //your code

 }
}
于 2013-08-08T17:43:54.973 に答える