繁体   English   中英

Codeigniter如果in_array

[英]Codeigniter if in_array

我正在从控制器传递数据进行查看,我的代码中有代码

foreach ($mapData as $map)
{
 echo $map['x'].';'.$map['y'].'<br/>';
}

它给我印像

5;5
6;6
7;7

现在,我从数据库中传递另一个数据作为二维数组(我想),它看起来像这样

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

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

)

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

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

但这不起作用,根据http://php.net/manual/en/function.in-array.php它应该起作用吗? 我究竟做错了什么?

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不同的数组。

您正在将索引xy作为干草堆传递。 但是在针上,您只是像array(5,5)array(6,6)之类通过。

根据文档, in_array()可以比较

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

in_array工作正常,只是您正在将没有键的数组与以xy作为其值的键的数组进行比较。 尝试给我们的新数组相应的键, 然后进行比较:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM