我最近在Stack - Search array for specific string上發佈了這個問題 - 並得到了我的問題的完美答案,我標記爲正確。不過,我現在有一個相關的問題,我覺得很難解決,但它看起來應該很容易!如果沒有發現array_search查詢
...我已經尋找字符串「GB」和「的陣列美國」使用以下,這是提供給我在以前的帖子:
/* Get Movie release dates */
$releases = $tmdb->getMovieReleases($tmdb_id);
echo "<pre>";
print_r($releases);
echo "</pre>";
$uk_release = -1;
foreach($releases['countries'] as $k=>$v) {
if(array_search('GB', $v)) {
$uk_release = $k;
break;
} else {
$uk_release = null;
}
}
$us_release = -1;
foreach($releases['countries'] as $k=>$v) {
if(array_search('US', $v)) {
$us_release = $k;
break;
} else {
$us_release = null;
}
}
$uk_rating = $releases['countries'][$uk_release]['certification'];
$us_rating = $releases['countries'][$us_release]['certification'];
,然後用一個簡單的解析到頁面<?php echo $uk_rating; ?>
/<?php echo $us_rating; ?>
。
我發現,然而,一些陣列實際上並不包含查詢搜索的數據,如以下,不具有英國評級或發佈日期:
Array
(
[id] => 13655
[countries] => Array
(
[0] => Array
(
[iso_3166_1] => US
[certification] => G
[release_date] => 2008-06-20
)
[1] => Array
(
[iso_3166_1] => CA
[certification] =>
[release_date] => 2008-06-20
)
[2] => Array
(
[iso_3166_1] => JP
[certification] =>
[release_date] => 2008-08-01
)
)
)
我試圖構造各種IF語句來檢查兩個查詢之一是否爲null,空,==「」等等,但似乎沒有任何工作。目前,我正在嘗試以下方法,基本上使用邏輯IF如果兩個結果都不等於空,則顯示兩者,或者如果其中一個爲空,則只顯示不爲空的格式(道歉):
if ($uk_date !== "" && $us_date !== "") {?>
<section class="span3">
<p class="overview-title">RELEASE DATE</p>
<p class="section_body">
<?php echo $uk_date; ?> (UK)<br>
<?php echo $us_date; ?> (US)
</p>
</section><?php
} else if ($uk_date = "") {?>
<section class="span3">
<p class="overview-title">RELEASE DATE</p>
<p class="section_body">
<?php echo $us_date; ?> (US)
</p>
</section><?php
} else if ($uk_date == "") {?>
<section class="span3">
<p class="overview-title">RELEASE DATE</p>
<p class="section_body">
<?php echo $uk_date; ?> (UK)
</p>
</section><?php
}
感謝您的幫助,我將如何對陣列本身進行檢查?我是否需要附加一個else {}語句來搜索該數組,如果是這樣,我該如何處理這個問題? – 2013-03-24 11:55:41
@AlexRyans更新了答案。 – Emissary 2013-03-24 12:01:02
這是條件運算符,它是* a *三元運算符。 – 2013-03-24 12:02:55