我有像这样的PHP脚本
<?php
$listkey = "aaa";
$apikey = $_GET['apikey'];
if ($apikey == $listkey) {
$response["error"] = TRUE;
$response["respon"] = "Success";
echo json_encode($response);
} else {
$response["error"] = FALSE;
$response["respon"] = "Failed";
echo json_encode($response);
}
?>
正如您所看到的,$ listkey数据有一个值,我希望$ listkey数据有两个以上的值,我尝试使用这样的数组。
$listkey = array("aaa", "bbb", "ccc", "ddd");
但是如果我尝试它,我得到的回复是FAILED,即使我已经包含GET apikey = aaa或bbb是否有任何合适的建议来解决这个问题?
由于
答案 0 :(得分:1)
if ($apikey == $listkey) {
这就是为什么它不能工作,你试图将字符串与数组进行比较。您可以使用迭代或in_array()PHP函数。
if ( in_array($apikey,$listkey) ) {
后一个似乎更简单,它检查$ listkey数组是否包含一个等于$ apikey字符串的值。
您可能需要添加第三个参数&#34; true&#34;对于in_array,在非严格的情况下,函数可能返回false true。
答案 1 :(得分:1)
您需要使用in_array()
,请参阅the docs。
<?php
$listkey = ["aaa", "bbb", "ccc"];
$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);
}
?>
答案 2 :(得分:0)
使用in_Array概念
请检查以下代码:
<?php
// $listkey = "aaa";
$listkey = array("aaa", "bbb", "ccc", "ddd");
$_GET['apikey'] = "aaa";
if (in_array($_GET['apikey'], $listkey))
{
$response["error"] = TRUE;
$response["respon"] = "Success";
echo json_encode($response);
}
else
{
$response["error"] = FALSE;
$response["respon"] = "Failed";
echo json_encode($response);
}
这对你有帮助
由于
答案 3 :(得分:0)
您需要将字符串与数组进行比较。你不能只是这样做:
if($string == $array)
会导致错误。
您可以遍历您的数组以使检查更有价值;
$matched = false;
//Iterate over array
foreach($listkey as $key){
if($key == $apikey){
$matched = true; //Set match to true
break; //Stop looping as it's not necessary
}
}
if ($matched) {
$response["error"] = TRUE;
$response["respon"] = "Success";
echo json_encode($response);
} else {
$response["error"] = FALSE;
$response["respon"] = "Failed";
echo json_encode($response);
}
- 您也可以使用in_array()
(已有答案),这将使您的代码更加整洁。但是,效率稍低。如果它是一个小阵列,它不会真正产生很大的不同。
答案 4 :(得分:0)
你可以使用in_array()方法,下面的例子对你有用。
<?php
$listkey = array("aaa", "bbb", "ccc", "ddd");
if (in_array($apikey, $listkey))
{
echo "Match found";
}
else
{
echo "Match not found";
}
?>