2015-02-11 55 views
-1

创建列表给出错误时没有足够的数据创建列表给出错误时没有足够的数据

我做了什么:

<?php 
    $a=$b=$c=array(); 
    list($a,$b,$c) = array_chunk(array("A","B","C","D","E"), 3); 
    echo "<pre>"; 
    print_r(array($a,$b,$c)); 
?> 

收到错误,如:

Notice: Undefined offset: 2 in /var/www/html/test.php on line 13 

如何解决它?

在上面的情况下,如果没有值然后保持最后一个数组为空。

如何区分3个数组中的数据?如果没有足够的数据,则将最后一个数组保留为空。

+0

检查在分配给list()之前是否有足够的数据。将阵列填充到最小长度。不要首先分配给各个变量,并将其保存在一个数组中。 – deceze 2015-02-11 13:24:52

+0

你的array_chunk应该有第二个参数为2.它将数组分成3个数组,每个数组包含2个元素。如果你试图将它分成3个数组,每个数组都有3个元素,那么你现在就会遇到错误。 – 2015-02-11 13:30:06

回答

3
list($a,$b,$c) = array_pad(array_chunk(array("A","B","C","D","E"), 3), 3, array()); 

如果您是数组中的元素少,array_pad将默认值填充它。

0

错误仅仅是说偏移量是未定义的。列表函数只获得2个,但在代码中需要3个。所以,如果您使用此代码,它不会给你错误

<?php 
    $a=$b=$c=array(); 
    list($a,$b) = array_chunk(array("A","B","C","D","E"), 3); 
    echo "<pre>"; 
    print_r(array($a,$b,$c)); 
?> 

或者,如果你块阵列分成两个部分,也将工作,将阵列分为三个部分。

<?php 
     $a=$b=$c=array(); 
     list($a,$b) = array_chunk(array("A","B","C","D","E"), 2); 
     echo "<pre>"; 
     print_r(array($a,$b,$c)); 
    ?> 

希望这有助于你

+0

我知道,但我的问题是如何划分3个数组中的数据,如果没有足够的数据保持最后一个数组空白 – 2015-02-11 13:30:56

相关问题