注意:分配爆炸到列表时未定义的偏移量

Nay*_*ana 0 php string explode

我试图从逗号分隔列表中获取一个值,因为我已经使用了explode()方法,但它仅适用于某些情况下仅在其他情况下它会发出以下通知:

注意:未定义的偏移量

我的代码:

案例1(正常工作):

$permission = 1,2,3,4,5 ; // this is fetching values from database 

list($p1, $p2,$p3,$p4,$p5) = explode(',', $permission);
echo $p1. "</BR>".$p2. "</BR>".$p3. "</BR>".$p4. "</BR>".$p5 ;
Run Code Online (Sandbox Code Playgroud)

输出:

1 2 3 4 5
Run Code Online (Sandbox Code Playgroud)

案例2(注意:未定义的偏移量:4和注意:未定义的偏移量:3):

$permission = 1,2,3 ;// this is fetching values from database

list($p1, $p2,$p3,$p4,$p5) = explode(',', $permission);
echo $p1. "</BR>".$p2. "</BR>".$p3. "</BR>".$p4. "</BR>".$p5 ;
Run Code Online (Sandbox Code Playgroud)

输出:

1 2 3 with (Notice: Undefined offset: 4  and Notice: Undefined offset: 3)
Run Code Online (Sandbox Code Playgroud)

如何克服这个通知.或者我的方法本身是错误的.

还有其他好方法吗?

Riz*_*123 6

这是因为它无法在列表中的每个变量中保存值,因为您的字符串只有2个逗号== 3个值.

所以要解决这个问题,只需将其保存在数组中并循环遍历数组,如下所示:

$arr = explode(',', $permission);

foreach($arr as $v)
    echo $v . "<br>";
Run Code Online (Sandbox Code Playgroud)