2014-09-01 68 views
0

我从hxxp JSON数组://best1st.info/Moviedb/json.php米= 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”元素有“阿根廷”字样,则显示它(值)。

我已经尝试做(搜索与谷歌和这里的计算器),但似乎我的代码不工作,这里有一个人可以帮我解决这个问题,这里是我的代码

$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; 
} 

谢谢您

回答

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"; 
} 
+0

这是我的工作,感谢你SKRocks – esi0411 2014-09-01 05:44:09

0
function searchArray($search, $array) 
{ 
    foreach($array as $key => $value) 
    { 
     if (stristr($value, $search)) 
     { 
      return true; 
     } 
    } 
    return false; 
} 

在这里,在上面的函数第一个参数是你想搜索的字符串,第二个参数是数组,它会通过整个数组遍历与功能stristr他们的工作是在以极虚假申报部分。

注意:如果你需要区分使用敏感的搜索,而不是stristrstrstrstrchr

if (searchArray('Argentina', $alsoKnownAs)) { 
    echo "Match found"; 
    // echo the-array-value 
} 

else 
{ 
echo "Match not found"; 
return false; 
} 
0

你的ALSO_KNOWN_AS阵列中的条目不喜欢“阿根廷”单个的词,但而是与国名和其他文本进行比较。这就是为什么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; 
} 

希望这有助于:-)

+0

这给我的“解析错误:语法错误,意外'as'(T_AS),期待';'在D:\ XAMPP \ htdocs ...“按摩,但上面的答案已经解决了我的问题thaks q无论如何peter_the_oak :) – esi0411 2014-09-01 05:45:41

+0

是的,它必须是一个'foreach'循环:-)我已经纠正了答案。 – 2014-09-01 05:47:19

相关问题