平均分割数组:

时间:2011-05-19 23:26:06

标签: php count

我有以下数组:

$array = array(1,0,0,0,1,1,1,1,0,1,1,1,1,0,1,1,0,1,0,0,1,0,1);

我希望将其拆分为单个数组,以便每个数组包含七个或更少的值。

例如,第一个数组将成为:

$one = array(1,0,0,0,1,1,1)
$two = array(1,0,1,1,1,1,0)
$three = array(1,1,0,1,0,0,1);
$four = array(0,1);

另外,您如何计算第一列中出现1次的次数?

3 个答案:

答案 0 :(得分:6)

array_chunk()正是您要找的。

 $splitted = array_chunk($array, 7);

为了计算出现的情况,我会很懒。如果您的数组只包含10 s,那么简单的array_sum()就可以:

 print array_sum($splitted[0]);    // for the first chunk

答案 1 :(得分:4)

  

我希望将其拆分为单个数组,以便每个数组包含七个或更少的值。

使用明确为此目的制作的array_chunk()

  

另外,您如何计算第一列中出现1次的次数?

使用array_count_values()

$one = array(1,0,0,0,1,1,1);
$one_counts = array_count_values($one);
print_r($one_counts);

// prints
Array
(
    [0] => 3
    [1] => 4
)

答案 2 :(得分:0)

假设你想保留数组的内容,我会使用array_slice()从数组中提取所需数量的元素,每次都将'$ offset'增加所需的数量,直到数组耗尽为止。

至于你的第二个问题,试试:

$num_ones=count(preg_grep(/^1$/,$array));