我有一个来自hxxp的json数组://best1st.info/Moviedb/json.php?m = tt2015381& o = json
以下是数组输出的示例:
. and so on
.
.
[STORYLINE] => On planet Earth in 1988, young Peter Quill ( ) sits in the waiting room of a hospital...
[ALSO_KNOWN_AS] => Array
(
[0] => Guardianes de la galaxia = Argentina
[1] => Qalaktikanin Mühafizeçileri = Azerbaijan
[2] => Пазителите на Галактиката = Bulgaria (Bulgarian title)
[3] => Guardiões da Galáxia = Brazil
)
[RELEASE_DATES] => Array
(
.
.
. and so on
我想检查一下" ALSO_KNOWN_AS "元素,有" 阿根廷"单词,如果" ALSO_KNOWN_AS"元素有"阿根廷"单词,然后显示它(值)。
我已经尝试这样做了(用谷歌和这里的stackoverflow搜索),但似乎我的代码不起作用,这里的某些人可以帮我修复它,这是我的代码
$url = 'http://best1st.info/Moviedb/json.php?m=tt2015381&o=json';
$newdata = json_decode(file_get_contents($url));
$alsoKnownAs = $newdata->ALSO_KNOWN_AS;
if (in_array('Argentina', $alsoKnownAs)) {
echo "Match found";
// echo the-array-value
}
else
{
echo "Match not found";
return false;
}
谢谢你
答案 0 :(得分:1)
试试这个
$url = 'http://best1st.info/Moviedb/json.php?m=tt2015381&o=json';
$newdata = json_decode(file_get_contents($url));
$found = false;
foreach($newdata->ALSO_KNOWN_AS as $value)
{
if(strpos($value, "Argentina") !==false)
{
echo $value;
echo "<br/>";
$found = true;
}
}
if($found===false)
{
echo "Not found";
}
答案 1 :(得分:0)
function searchArray($search, $array)
{
foreach($array as $key => $value)
{
if (stristr($value, $search))
{
return true;
}
}
return false;
}
在上面的函数中,第一个参数是你要搜索的字符串,第二个参数是数组,它将使用函数stristr
遍历整个数组,函数的工作是返回找到的部分为false。 / p>
注意:如果您需要区分大小写搜索而不是stristr
,请使用strstr
或strchr
if (searchArray('Argentina', $alsoKnownAs)) {
echo "Match found";
// echo the-array-value
}
else
{
echo "Match not found";
return false;
}
答案 2 :(得分:0)
ALSO_KNOWN_AS
数组中的条目不是像#34;阿根廷&#34;而是与国名和其他文本进行比较。这就是in_array()
无法找到它的原因。 in_array()
需要精确匹配。所以你必须检查所有项目。
我建议你用foreach循环替换if语句:
...
...
$found = false;
foreach ($alsoKnownAs as $item) {
if (strpos($item, 'Argentina') !== false) {
$found = true;
break;
}
}
if (!$found) {
echo "Match not found";
return false;
}
希望这会有所帮助: - )