亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP - 如何查詢 JSON 文件的多個值?

PHP - 如何查詢 JSON 文件的多個值?

PHP
慕碼人2483693 2022-07-22 10:26:09
我正在使用純 PHP 和 JS 構建 JSON 后端,不涉及 MySQKL,我需要知道是否可以多次查詢相同的 JSON 鍵模式。所以,這是我的 JSON 文件:[    {        "id": "WWJaePyv9a",        "string": "aaa",        "number": 123.89,        "aArray": [            "aa",            "bb",            "cc"        ],        "bool": true,        "geocoords": [            "1.23456",            "-33.76584"        ]    },    {        "id": "vXMv68ze8K",        "string": "bbb",        "number": 1.64,        "aArray": [            "yyy",            "ppp"        ],        "bool": false,        "geocoords": [            ""        ]    },    {        "id": "Imd6oPVYtP",        "string": "ccc",        "number": 0,        "aArray": [            ""        ],        "bool": false,        "file": "",        "geocoords": [            ""        ]    }]這是我的 PHP 腳本:<?php $className = basename(__DIR__) ;/* GET variables */$string = $_GET['string'];$aArray = $_GET['aArray'];$number = $_GET['number'];$bool = $_GET['bool'];if( $bool == 'true'){ $bool = true; } else if($bool == 'false'){ $bool= false; }$data = file_get_contents($className. '.json');$data_array = json_decode($data, true);$results = array();foreach ($data_array as $obj) {    // check value in string    if(isset($string)){        if (strpos($obj['string'], $string) !== false) {            // $results[$obj['id']] = $obj;            array_push($results, $obj);        }    }這可能嗎?我是在代碼中做錯了什么,還是在查詢 URL 的語法中做錯了什么?
查看完整描述

1 回答

?
絕地無雙

TA貢獻1946條經驗 獲得超4個贊

我可以使用以下代碼解決問題:


if(isset($string)){

        foreach ($string as $k=>$value) { 

            if ($obj['string'] == $value) { 

                array_push($results, $obj); 

            }  

        }

    }


    if(isset($number)){

        foreach ($number as $k=>$value) { 

            if ($obj['number'] == $value) { 

                array_push($results, $obj); 

            }  

        }

    }


    if(isset($aArray)){

        foreach ($aArray as $k=>$value) { 

            if (in_array($value, $obj['aArray'])) {

                array_push($results, $obj);

            }  

        }

    }


    if(isset($bool)){

        foreach ($bool as $k=>$value) { 

            if ($obj['bool'] == $value) { 

                array_push($results, $obj);

            }   

        }

    }

因此,使用這樣的 URL:


https://example.com/query.php?string[]=aaa&string[]=ccc&aArray[]=ppp

使我能夠得到我正在尋找的結果。


查看完整回答
反對 回復 2022-07-22
  • 1 回答
  • 0 關注
  • 187 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號