匹配两个数组

时间:2012-05-26 16:09:11

标签: php arrays

第一个数组是

$first = Array(0=>orange; 1=>apple; 2=>grapes)

第二个数组是复杂的

Array
(
    [0] => Array
        (
            [fruits] => Array
                (
                    [0] => Array
                        (
                            [0] =>orange
                            [1] => apple
                        )

                    [1] => grapes
                )

            [price] => 69.0   )

    [1] => Array
        (
            [fruits] => Array
                (
                    [0] =>orange
                    [1] => grape
                )

            [price] => 40
        )

}

第二个数组是从先前的数组搜索生成​​的。价值在之前的循环中。匹配数组是否可行。如果是这样的话请。有几个选择,但没有结果。

1 个答案:

答案 0 :(得分:0)

function findMatches( $query, $arrayOfArrays) {

  $ret = array();
  foreach( $arrayOfArrays as $array) {
    if( matches( $array, $query) ) {
      $ret[] = $array;
    }
  }
  return $ret;
}

function matches( $array, $query) {
  foreach( $query as $key => $value) {
    if( !isset( $array[$key]) || $array[$key] != $value) {
      return false;
    }
  }
  return true;
}

$isMatching = findMatches($needleArray, $hayStackArray);