我有以下数组:
$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次的次数?
答案 0 :(得分:6)
array_chunk()
正是您要找的。 p>
$splitted = array_chunk($array, 7);
为了计算出现的情况,我会很懒。如果您的数组只包含1
或0
s,那么简单的array_sum()
就可以:
print array_sum($splitted[0]); // for the first chunk
答案 1 :(得分:4)
我希望将其拆分为单个数组,以便每个数组包含七个或更少的值。
使用明确为此目的制作的array_chunk()
。
另外,您如何计算第一列中出现1次的次数?
$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));