我遇到了从API请求返回的数组的问题,我想搜索特定的值并执行某个操作但是我没有成功地使它工作。我已经使用了array_search()函数并根据在线和在线阅读类似问题做了几件事,但仍然没有运气。谁知道我做错了什么?
$responses = explode("\n", file_get_contents($url));
print_r($responses);
print_r($ answers)显示:
Array
(
[0] => destination_msisdn=233887
[1] => country=
[2] => countryid=
[3] => operator=
[4] => operatorid=
[5] => authentication_key=XXXXXX
[6] => error_code=101
[7] => error_txt=Destination MSISDN out of range
)
这就是我目前在我的数组搜索代码中所拥有的
if(array_search("error_code=101", $responses)){
echo "Incorrect!";
}
我得到的结果:
print_r(file_get_contents($url));
是
destination_msisdn=23345678 country= countryid= operator= operatorid= authentication_key=XXXXX error_code=101 error_txt=Destination MSISDN out of range
请不要试图爆炸任何数组值我试图在数组中搜索字符串并按照我的if语句执行操作。
由于
答案 0 :(得分:2)
正如我们在评论中发现的那样,您的值error_code=101
长度为30个字符,最后可能有一些空格,这就是它不匹配的原因。
现在你可以在将它们分解成数组时删除这些空格,例如
$responses = preg_split("/\s*\n\s*/", file_get_contents($url));
或者为每个元素删除它们,例如
$responses = array_map("trim", $responses);
我还建议您检查:
array_search("error_code=101", $responses) !== FALSE
由于值的键也可能为0,这将导致不输入if语句。
答案 1 :(得分:-1)
从您的代码适合我的事实开始。
你可以尝试爆炸数组,搜索这样的字符串吗?
if(strpos(file_get_contents($url),"error_code=101") !== FALSE)
echo "Incorrect!";
[编辑]