2015-02-24 163 views
0
$channels = array('imaqtpies','imsoff','zzero71tv', 'kaptenen', 'onlySinged', 'nightblue3') ; 
$nr = 0; 


$callAPI = implode(",",$channels); 
$online = 'online.png';  
$offline = 'offline.png'; 
$json = file_get_contents('https://api.twitch.tv/kraken/streams?channel=' .  $callAPI); 
$dataArray = json_decode($json, true); 

foreach($dataArray['streams'] as $mydata){ 
    echo $mydata['channel']['name'] . ' is online'; 
    echo '<br /><hr />'; 
    unset($channels[$nr]); 
    $nr++; 
} 

$newChannels = array_values($channels);; 


foreach($newChannels as $channel) { 
    echo $channel . ' is offline'; 
    echo '<br /><hr />'; 
} 

并非所有名称都在“脱机”部分中回显,并且有些名称正在两次(在线和脱机状态下)回显。阵列不会删除所有元素

enter image description here

回答

3

$mydata['channel']['name']$nr不对齐。你没有设置第一个x频道,但我不明白为什么抽搐应该按照你定义频道的顺序返回它们。

你会想是这样的:

$online_channels = array(); 
foreach($dataArray['streams'] as $stream){ 
    $online_channels[] = $stream["channel"]["name"]; 
} 
$offline_channels = array_diff($channels, $online_channels); 

然后打印$online_channels$offline_channels