2

我的函数在多维数组中搜索匹配项。它有效,但我想知道是否有更好的方法来做到这一点。

$arrays = array(
    array('id' => 1, 'color_id' => 2, 'store_id' => 1),
    array('id' => 1, 'color_id' => 2, 'store_id' => 2),
    array('id' => 2, 'color_id' => 3, 'store_id' => 1)
);

function query_array($array, $keys = array(), $values = array()){
    $match = array();
    for($i = 0; $i < count($array); $i++){
        for($x = 0; $x < count($keys); $x++){
            if($array[$i][$keys[$x]] == $values[$x]){
                $match[$i][] = 'increment';
                if(count($match[$i]) == count($keys)){
                    return $array[$i];
                }
            }
        }
    }
    return $match;
}
$searchKeys = array('item_id', 'store_id');
$searchValues = array(2,1);
$match = query_array($arrays, $searchKeys, $searchValues);

echo '<pre>';
print_r($match);
echo '<pre>';
4

0 回答 0