2012-05-26 219 views
1

第一阵列是匹配两个阵列

$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

我不知道为什么你'java' –

+0

歉意标记这一新的:( – user1419210

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