第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

PHP 使用 $_POST 數(shù)組過(guò)濾 JSON 數(shù)組

PHP 使用 $_POST 數(shù)組過(guò)濾 JSON 數(shù)組

PHP
長(zhǎng)風(fēng)秋雁 2023-07-21 18:03:20
我目前有一個(gè)包含車(chē)輛信息的 json 文件:{    "Inventory": [{            "id": "1",            "StockNumber": "1000",            "Make": "Ford",            "Model": "Mustang",            "Trim": "GT",            "Year": "2011",            "Color": "Red",            "Cylinders": "8",            "Transmission": "Manual"        }, {            "id": "2",            "StockNumber": "1001",            "Make": "Ford",            "Model": "Mustang",            "Trim": "GT",            "Year": "2012",            "Color": "Yellow",            "Cylinders": "8",            "Transmission": "Automatic"        }, {            "id": "3",            "StockNumber": "1002",            "Make": "Chevy",            "Model": "Camaro",            "Trim": "ZL1",            "Year": "2020",            "Color": "Red",            "Cylinders": "8",            "Transmission": "Manual"        }]}我試圖讓復(fù)選框按品牌、型號(hào)、年份、顏色等過(guò)濾結(jié)果...從選擇頁(yè)面中,我獲取復(fù)選框的值,并將其傳遞到搜索 php 頁(yè)面。這是傳遞到搜索頁(yè)面的數(shù)組。['模型' => ['野馬', '科邁羅'],'顏色' => ['紅色']];這應(yīng)該返回 2 個(gè)結(jié)果:紅色野馬和紅色科邁羅。如果我使用array_filter,在選擇福特后,雪佛蘭車(chē)輛現(xiàn)在會(huì)被過(guò)濾掉。所以我可以選擇福特和紅色,我會(huì)得到預(yù)期的結(jié)果。但是,現(xiàn)在我無(wú)法選擇雪佛蘭,因?yàn)樗驯贿^(guò)濾掉。所以我看不到紅色的福特和雪佛蘭車(chē)輛。我得到一個(gè)結(jié)果,一輛紅色野馬。如果我嘗試使用 array_push 將車(chē)輛添加到結(jié)果數(shù)組中,我可以添加福特和雪佛蘭,但選擇紅色不會(huì)過(guò)濾掉黃色野馬,因?yàn)辄S色野馬是福特,并且它符合該條件。我得到 3 個(gè)結(jié)果,1 輛紅色野馬、1 輛黃色野馬和 1 輛紅色科邁羅。我正在努力使用傳入的數(shù)組來(lái)過(guò)濾 json 結(jié)果的邏輯。似乎我需要傳入"or"多個(gè)品牌以及"and"每個(gè)類(lèi)別。福特或雪佛蘭和紅色。另一個(gè)例子可能是:福特或雪佛蘭和紅色或黃色和手冊(cè)。我根據(jù)以下回復(fù)更新了代碼:$make = ['Mustang', 'Camaro'];$color = ['Red'];$result = [];   foreach ($dataSource as $k => $data) {         foreach ($posts as $postKey => $postValue) {              // This does not.  Only filters on last array in loop     if (array_key_exists($postKey, $data) && in_array($data[$postKey],      $postValue)) {          $result[$k] = $data;        } else {      unset($result[$k]);            }         }       }     }如何以靜態(tài)示例的工作方式根據(jù)數(shù)組標(biāo)準(zhǔn)動(dòng)態(tài)過(guò)濾該數(shù)組?
查看完整描述

1 回答

?
慕沐林林

TA貢獻(xiàn)2016條經(jīng)驗(yàn) 獲得超9個(gè)贊

您需要將 post 數(shù)組轉(zhuǎn)換為此結(jié)構(gòu)以便于處理


 $posts = [

        'Model' => ['Mustang', 'Camero'],

        'Color' => ['Red']

    ];

然后使用 foreach 過(guò)濾器:


        $carJson = '{

    "Inventory": [{

            "id": "1",

            "StockNumber": "1000",

            "Make": "Ford",

            "Model": "Mustang",

            "Trim": "GT",

            "Year": "2011",

            "Color": "Red",

            "Cylinders": "8",

            "Transmission": "Manual"

        }, {

            "id": "2",

            "StockNumber": "1001",

            "Make": "Ford",

            "Model": "Mustang",

            "Trim": "GT",

            "Year": "2012",

            "Color": "Yellow",

            "Cylinders": "8",

            "Transmission": "Automatic"

        }, {

            "id": "3",

            "StockNumber": "1002",

            "Make": "Chevy",

            "Model": "Camaro",

            "Trim": "ZL1",

            "Year": "2020",

            "Color": "Red",

            "Cylinders": "8",

            "Transmission": "Manual"

        },

        {

            "id": "4",

            "StockNumber": "1005",

            "Make": "Chevy",

            "Model": "VW",

            "Trim": "ZL1",

            "Year": "2020",

            "Color": "Red",

            "Cylinders": "8",

            "Transmission": "Manual"

        }]

}';

    $cars = json_decode($carJson, true)['Inventory'];



    $posts = [

        'Model' => ['Mustang', 'Camero'],

        'Color' => ['Red']

    ];


    $result = [];


    foreach ($posts as $postKey => $postValue) {

        foreach ($cars as $k => $car) {

            if (array_key_exists($postKey, $car) && in_array($car[$postKey], $postValue)) {

                $result[$k] = $car;

            } else {

                unset($cars[$k]);

                unset($result[$k]);

            }

        }

    }


    print_r($result);



查看完整回答
反對(duì) 回復(fù) 2023-07-21
  • 1 回答
  • 0 關(guān)注
  • 188 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)