注意:未定义的偏移量:0使用数组

时间:2013-10-19 11:28:29

标签: php

不确定如何解决此错误

  

注意:未定义的偏移量:在第50行的C:\ xampp \ htdocs \ streams.php中为0        注意:未定义的偏移量:在第53行的C:\ xampp \ htdocs \ streams.php中为0        注意:未定义的偏移量:第54行的C:\ xampp \ htdocs \ streams.php中的0

编码指的是:

<?php

$members = array("hawkmyg");

$userGrab = "http://api.justin.tv/api/stream/list.json?channel=";

$checkedOnline = array (); 

foreach($members as $i =>$value){
    $userGrab .= ",";
    $userGrab .= $value;
}
unset($value);

//grabs the channel data from twitch.tv streams
$json_file = file_get_contents($userGrab, 0, null, null);
$json_array = json_decode($json_file, true);

//get's member names from stream url's and checks for online members
foreach($members as $i =>$value){
    $title = $json_array[$i]['channel']['channel_url'];
    $array = explode('/', $title);
    $member = end($array);
    $viewer = $json_array[$i] ['stream_count'];
    onlinecheck($member, $viewer);
    $checkedOnline[] = signin($member);
}

无法弄清楚如何修复

1 个答案:

答案 0 :(得分:0)

当调用具有特定索引的数组元素(例如echo $array[$index])时会发生未定义偏移的通知,但索引未在数组中定义。

在您的代码中,数组$members有一个元素(索引为0)。所以我们在你的foreach循环中走了一次 您拨打$json_array[$i]['channel']['channel_url'] $i = 0,但$json_array[0]不存在。

您应该使用$json_arrayprint_r()检查var_dump()的内容。

我自己测试了脚本,当我读到链接http://api.justin.tv/api/stream/list.json?channel=,hawkmyg的内容时,它返回了一个空的JSON数组。频道'hawkmyg'不存在。
我尝试了频道'hatoyatv',它只是起作用。