0

Web サイトに基本的な LAMP サーバーを使用しており、Twitch の API にリンクされているスクリプトを書き直そうとしています。私が抱えている問題は、より良い言葉がないため、foreach の反対を見つけようとしていることです。

たとえば、Twitch サーバーに URL と共に送信される名前の配列があり、名前の 1 つが現在ストリーミングされている場合、「ストリーム」には多くの値が含まれ、現在ストリーミングされていない場合は「ストリーム」が返されます。ヌル。

これは、人をチェックしてオンラインであることを示すのに最適ですが、オフラインの人を表示する必要があり、その方法がわかりません。foreachelse のようなものか、そのようなものです。これは私が以下に持っているコードです。ありがとう。

<?php
$username = array("zeromi", "aerosgw", "krylen","tshirt_aion","snooky_aion","vashiro","papa456","vinley_aion","hanfkrokette","wtfast_siel","neckofthewood","paraproc","aionnae","uhiwi","mufflermankr","valorium","knighterrantry","soulune","relizex3","vinlockz","trevyn201","tiger529","xkegi","logsnsticks","meowform","uzuk3","kalzard01","squall_m","suyji","headpcgamer","sariett_siel");
$callAPI = implode(",",$username);
$data = json_decode(@file_get_contents('https://api.twitch.tv/kraken/streams?channel=' . $callAPI), true);


foreach ($data['streams'] as $streams){
$name       = $streams['channel']['name']; 
echo $name.'<br>';
}

?>
4

1 に答える 1

1

array_diffを使用するだけで、ユーザー名を除外できます。

$online = array();
foreach ($data['streams'] as $streams)
    $online[] = $streams['channel']['name'];

$offline = array_diff($username, $online);

echo 'Online users: ' . implode(', ', $online) . "\n<br>";
echo 'Offline users: '. implode(', ', $offline);

出力 (執筆時):

Online users: sariett_siel, mufflermankr 
Offline users: zeromi, aerosgw, krylen, tshirt_aion, snooky_aion, vashiro, papa456, vinley_aion, hanfkrokette, wtfast_siel, neckofthewood, paraproc, aionnae, uhiwi, valorium, knighterrantry, soulune, relizex3, vinlockz, trevyn201, tiger529, xkegi, logsnsticks, meowform, uzuk3, kalzard01, squall_m, suyji, headpcgamer
于 2014-08-11T06:53:28.160 に答える