Php 编码器点火器(如果在_阵列中)

Php 编码器点火器(如果在_阵列中),php,arrays,Php,Arrays,我正在将数据从控制器传递到视图,视图中有代码 foreach ($mapData as $map) { echo $map['x'].';'.$map['y'].'<br/>'; } 现在,我正在以二维数组的形式从数据库中传递另一个数据(我猜) 看起来像这样 Array ( [0] => Array ( [x] => 5 [y] => 4 ) [1] => Array ( [x] =

我正在将数据从控制器传递到视图,视图中有代码

foreach ($mapData as $map)
{
 echo $map['x'].';'.$map['y'].'<br/>';
}
现在,我正在以二维数组的形式从数据库中传递另一个数据(我猜) 看起来像这样

Array
(
[0] => Array
    (
        [x] => 5
        [y] => 4
    )

[1] => Array
    (
        [x] => 5
        [y] => 5
    )

)
我想检查该数组中是否存在$map['x']和$map['y']中的任何一个,所以我正在这样做(不知道其他方法,因为我需要在foreach循环中检查)

但它不起作用,根据它应该起作用吗?我做错了什么

Array
(
[0] => Array
    (
        [x] => 5
        [y] => 4
    )

[1] => Array
    (
        [x] => 5
        [y] => 5
    )

)
应该像

Array
(
[0] => Array
    (
        [0] => 5
        [1] => 4
    )

[1] => Array
    (
        [0] => 5
        [1] => 5
    )

)
这意味着,
$array
(即haystack)不应该是索引与neddle不同的数组

您正在将索引
x
y
作为草垛传递。但在针中,你们只是像
array(5,5)
array(6,6)
一样通过

根据doc,数组()中的
可以比较

in_array( array(5,5), array( array(5,5), array(6,6) ) )
但不是

in_array( array(5,5), array( array('x' =>5, 'y' => 5), array('x' => 6, 'y' => 6) ) )
如果工作正常,只是将不带键的数组与具有
x
y
作为其值键的数组进行比较。尝试为新数组提供相应的键,然后比较:

if (in_array(array('x' => $map['x'], 'y' => $map['y']), $array)) {
    echo '1';
}

它不应该是
$mapData
而不是
$array
?(也许您只是举个例子)不,$array与$mapData是不同的数组。。我已经有答案了,谢谢你。
in_array( array(5,5), array( array('x' =>5, 'y' => 5), array('x' => 6, 'y' => 6) ) )
if (in_array(array('x' => $map['x'], 'y' => $map['y']), $array)) {
    echo '1';
}