比较数组中的数据 - PHP

我想从JSON附带的数据中进行比较。这就是我为它写的。


$packages[0][0] = "5678"; // on the way

$packages[0][1] = "3098"; // checkpoint

$packages[0][2] = "4331"; // accept


if (array_key_exists($packages[0][2], $data[6])) {

    $packageID= 1;

} else if (array_key_exists($packages[0][1], $data[6]) == true) {

    $packageID= 5; 

} else if (array_key_exists($packages[0][0], $data[6]) == true) {

    $packageID= 10; 

} else {

    $packageID=0;

}

例如 JSON:


* Array

    (

        [0] => xxx

        [1] => yyy

        [2] => xxx

        [3] => yyy

        [4] => xxx

        [5] => yyy

        [6] => Array

            (

                [0] => 1234

                [1] => 5678

                [2] => 9012 

            )


    )

PackageID总是出来0。


可能是什么原因?


牛魔王的故事
浏览 83回答 1
1回答

慕森卡

您正在使用array_key_exists(),但您应该使用in_array(). 您正在搜索的值是元素,而不是键。$packages[0][0] = "5678"; // on the way$packages[0][1] = "3098"; // checkpoint$packages[0][2] = "4331"; // acceptif (in_array($packages[0][2], $data[6])) {    $packageID= 1;} else if (in_array($packages[0][1], $data[6]) == true) {    $packageID= 5; } else if (in_array($packages[0][0], $data[6]) == true) {    $packageID= 10; } else {    $packageID=0;}
打开App,查看更多内容
随时随地看视频慕课网APP