You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP多API Key校验问题:数组匹配返回失败求助

解决方案:用in_array()检查数组中是否存在指定API Key

嘿,我懂你碰到的问题了!当你把$listkey从单个字符串改成数组后,原来的==比较逻辑直接失效了——因为PHP里字符串和数组直接用==比较永远会返回false,所以不管你传的是aaa还是bbb,都会走到else分支返回Failed。

正确的做法是用in_array()函数

这个函数就是专门用来检查某个值是否存在于数组中的,修改后的完整代码如下:

<?php 
$listkey = array("aaa", "bbb", "ccc", "ddd"); 
$apikey = $_GET['apikey']; 

if (in_array($apikey, $listkey)) { 
    $response["error"] = TRUE; 
    $response["respon"] = "Success"; 
    echo json_encode($response); 
} else { 
    $response["error"] = FALSE; 
    $response["respon"] = "Failed"; 
    echo json_encode($response); 
} 
?>

额外提示:开启严格类型检查

如果你需要确保apikey的类型和数组里的元素完全一致(比如避免把字符串"123"和数字123当成匹配),可以给in_array()加上第三个参数true,开启严格模式:

if (in_array($apikey, $listkey, true)) {
    // 你的逻辑
}

这样修改后,传入aaa、bbb这些合法值时,接口就会正确返回Success啦!

内容的提问来源于stack exchange,提问作者Faraaz Farzain Permadi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:45:37