array (size=9)
0 =>
array (size=2)
'x' => int 1
'y' => int 4
1 =>
array (size=2)
'x' => int 1
'y' => int 5
2 =>
array (size=2)
'x' => int 1
'y' => int 6
3 =>
array (size=2)
'x' => int 1
'y' => int 7
4 =>
array (size=2)
'x' => int 1
'y' => int 8
5 =>
array (size=2)
'x' => int 4
'y' => int 9
6 =>
array (size=2)
'x' => int 5
'y' => int 9
7 =>
array (size=2)
'x' => int 6
'y' => int 9
8 =>
array (size=2)
'x' => int 7
'y' => int 9
上面是我绘制战舰的x和y坐标数组,我想搜索该数组,并在发送的x,y与x,y对匹配时返回true。如果我只选择x或自己选择y,但可以同时搜索x和y,则可以这样做。
function searcharray($value, $key, $array) {
foreach ($array as $k => $val) {
//echo $val[$key];
if ($val[$key] == $value) {
return TRUE;
//$val[$key];
}
}
return null;
}
$array;
// both these must match
$key='y';
$value=9;
$key2='x';
Varlue2='5';
$result = searcharray($value,$key,$array);
echo $result;
您可以计算2个数组的交集。如果它们具有公共元素,则结果为true
,否则为false
。但是,由于要比较多维数组,因此需要使用自定义函数进行比较,因此应使用array_uintersect()
以下公式计算交集:
$haystack = [['x'=>'1','y'=>'1'],['x'=>'2','y'=>'1']];
$search = [['x'=>'1','y'=>'1']]; // NOTE: this must be a multidimensional array
$result = (bool)array_uintersect($haystack, $search, function($a, $b) {
return strcasecmp($a['x'].$a['y'], $b['x'].$b['y']);
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句