我想檢查一個值是否存在於解碼的json響應的foreach循環中,並將它與我自己的字符串進行比較。如果$ domain_to_check值存在於$ key_info ['registered_domain']數組中,我需要將$ response_array ['status']設置爲「Allowed」。我試圖使用in_array php函數來檢查值是否存在,但是我沒有成功,並且即使當值位於數組內時,我仍然收回「不允許 - 域未列出」響應。我認爲問題出在我的foreach循環上,但爲了我,我無法弄清楚什麼是錯的。檢查一個json foreach循環內是否存在字符串
$domain_to_check = 'domain-name.com';
$data = json_decode($returnCheckValue,true);
$key_response = $data['result'];
if ($key_response == 'success'){
foreach ($data['registered_domains'] as $key_domain_info) {
$key_listed_domain = $key_domain_info['registered_domain'];
if ($key_response == 'success' && in_array($domain_to_check, $key_listed_domain)) {
$response_array['status'] = 'Allowed';
}
else {
$response_array['status'] = 'Not Allowed - Domain not listed';
}
}
}
else {
$response_array['status'] = 'Not Allowed - Wrong Key';
}
echo json_encode($response_array);
這裏是我的var_dump();的$數據看起來像
array(9) { ["result"]=> string(7) "success" ["max_allowed_domains"]=> string(1) "3" ["registered_domains"]=> array(2) { [0]=> array(5) { ["id"]=> string(2) "60" ["lic_key_id"]=> string(2) "51" ["lic_key"]=> string(13) "93248cqkdj21as" ["registered_domain"]=> string(19) "domain-name-2.com" ["item_reference"]=> string(1) "1" } [1]=> array(5) { ["id"]=> string(2) "58" ["lic_key_id"]=> string(2) "51" ["lic_key"]=> string(13) "93248cqkdj21as" ["registered_domain"]=> string(14) "domain-name.com" ["item_reference"]=> string(3) "443" } } }
感謝你的幫助,我設法讓它在你的代碼的幫助下工作。 –