在Array中搜索特定值

时间:2015-12-03 14:24:46

标签: php arrays

我遇到了从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语句执行操作。

由于

2 个答案:

答案 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!";

[编辑]