无法使用索引访问php数组?

时间:2015-12-05 11:26:08

标签: php arrays

以下是我的代码;我没有问到它有什么问题;

$units=explode(";",$course->unitinfo);
foreach($units as $unit)
{
    $unitinfo=explode("|",$unit);
    echo'<tr>
            <td>'.$unitinfo[1].'</td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
        </tr>';
}

此处字符串 $ course-&gt; unitinfo 附带两个分隔符 first is; 并包含一行信息,第二个分隔符为 | 管标;第一次爆炸工作正常;第二次爆炸产生带有未定义偏移的错误,如果用print_r打印则显示 -

Array
(
    [0] => 1
    [1] => Mechanics
    [2] => 5
    [3] => 1,2
    [4] => 3,1
)

并且问题是无法通过索引访问 - $ unitinfo [1]; 哪里我错了

1 个答案:

答案 0 :(得分:1)

您需要检查|是否出现以避免脚本中出现“未定义的偏移量”警告:

$testString = 'test|1;test|2;test3';

$units=explode(";",$testString);
foreach($units as $unit)
{
    $value = '';
    if (strpos($unit, '|') !== false) {
        $unitinfo=explode("|",$unit);
        $value = $unitinfo[1];
    } else {
        $value='No pipe found';
    }


    echo'<tr>
            <td>'.$value.'</td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
        </tr>';
}

将显示:

1 2 No pipe found