PHP foreach null还是其他?

时间:2014-08-11 06:48:46

标签: php twitch

我正在为我的网站使用一个基本的LAMP服务器,并希望重写一个与Twitch的API链接的脚本。我所遇到的问题是试图找到,因为没有更好的词,与foreach相反。

例如,我有一个名称数组,这些名称通过URL发送到Twitch服务器,如果其中一个名称当前正在流式“流”,则会有很多值,如果它们当前没有流式传输“流” “将返回null。

这非常适合检查人员并显示他们在线,但我还需要它来显示离线的人,我无法弄清楚如何做到这一点。像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>';
}

?>

1 个答案:

答案 0 :(得分: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