私は最近、この質問をStack(特定の文字列の配列を検索)に投稿し、正しいとマークした質問に対する完全な回答を得ました。しかし、私は今、解決するのが難しいと感じている関連する問題を抱えていますが、それは非常に簡単なはずです!
前回の投稿で提供された次の文字列を使用して、配列で文字列「GB」と「US」を検索しました。
/* 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
)
)
)
2つのクエリのいずれかがnull、empty、== ""などであるかどうかを確認するために、さまざまなIFステートメントを作成しようとしましたが、何も機能しないようです。現在、私は次のことを試みています。基本的に、どちらの結果もゼロに等しくない場合はロジックを使用し、両方を表示するか、2つのうちの一方が空の場合は、空でない方のみを表示します(フォーマットについてお詫びします)。
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
}