2014-09-01 69 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

相關問題