我正在寫一個函數,它檢查嵌套的鍵,如果它存在於JSON中,但我有卡住的地方,如果代碼是正確的,那麼它必須返回true或false,但它不是。它返回空值功能沒有返回true或false,如果它是正確的
php函數是
function checkNestedKeysExists($JSONRequest,$keyCheckArray){
$currentKey = current($keyCheckArray);
$JSONRequest = array_change_key_case($JSONRequest, CASE_LOWER);
if(array_key_exists($currentKey,$JSONRequest)){
if($currentKey==end($keyCheckArray)){
return true;
}
else {
array_shift($keyCheckArray);
$this->checkNestedKeysExists($JSONRequest[$currentKey],$keyCheckArray);
//echo "F";
}
}
else{
return false;
}
}
給定陣列是
$keyCheckArray = array('data','device_info','deviceid');
和$ JSONRequest是
{
"timestamp": "2014-01-01 11:11:11",
"data": {
"requestid": "bcpcvssi1",
"device_info": {
"os": "Android",
"deviceId": "123123",
"userProfile": {
"email": [
"[email protected]"
],
"gender": "Male",
"age": "19",
"interest": [
"Apple",
"Banana"
]
}
}
}
}
您需要返回遞歸函數的輸出結果修改,你做遞歸調用你的代碼的行。 'return $ this-> checkNestedKeysExists($ JSONRequest [$ currentKey],$ keyCheckArray);'。 – h2ooooooo
謝謝@ h2ooooooo它的作品! – vishal
這是我在回答中給你的第一條建議。 –