【问题标题】:get available values existing in array from a list of keys php从键列表中获取数组中存在的可用值php
【发布时间】:2013-08-08 17:37:25
【问题描述】:

我有这个数组:

$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');

我想检查 $array 中是否存在至少一个 $items 的键,如果存在则返回一个数组,其中包含一个 /availableones 及其值。

这是我迄今为止尝试过的,但无法做到:

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

任何帮助将不胜感激。

感谢

【问题讨论】:

标签: php arrays


【解决方案1】:

您需要的是两个数组之间的键的交集。有一个很好的函数叫做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));

【讨论】:

  • 这是这样做的方法
【解决方案2】:

这就是你要找的吗?

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);

【讨论】:

    【解决方案3】:

    创建一个这样的函数:

    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));
    

    【讨论】:

      【解决方案4】:

      你可能需要这样的东西

      $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
      
       }
      }
      

      【讨论】:

        猜你喜欢
        • 2014-02-08
        • 1970-01-01
        • 1970-01-01
        • 2015-03-04
        • 2014-03-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多