我的函数在多维数组中搜索匹配项。它有效,但我想知道是否有更好的方法来做到这一点。
$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>';