下面是一个例子阵列我想分割:PHP分裂阵列复制
(1,2,3,4,5,0,6,7,0,8,9,10,11,12,0)
如何在3个数组这样拆呢?
(1,2,3,4,5,0) (6,7,0) (8,9,10,11,12,0)
下面是一个例子阵列我想分割:PHP分裂阵列复制
(1,2,3,4,5,0,6,7,0,8,9,10,11,12,0)
如何在3个数组这样拆呢?
(1,2,3,4,5,0) (6,7,0) (8,9,10,11,12,0)
以下是解决方案。 (作者说,他希望在“0”分裂,而不是重复的值)
function split_array_by_duplicate_values($a, $duplicate = 0)
{
$c = array_intersect($a, array($duplicate));
$r = array();
$i = 0;
foreach($c as $k => $v) {
$l = ++$k - $i;
$r[] = array_slice($a, $i, $l);
$i = $k;
}
return $r;
}
$a = array(1,2,3,4,5,0,6,7,0,8,9,10,11,12,0);
print_r(split_array_by_duplicate_values($a));
回报
Array
(
[0] => Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
[5] => 0
)
[1] => Array
(
[0] => 6
[1] => 7
[2] => 0
)
[2] => Array
(
[0] => 8
[1] => 9
[2] => 10
[3] => 11
[4] => 12
[5] => 0
)
)
试试这个:
$array = array(1, 2, 3, 0, 4, 5, 6);
$array_0 = array_splice($array, 0, 4);
$array_1 = array_splice($array, 4);
我想你要寻找的是array_splice
。
$array=array(1,2,3,0,4,5,6);
$newarray=array_splice($array,4);
print_r($array); //Array ([0] => 1 [1] => 2 [2] => 3 [3]=>0);
print_r($newarray); //Array([0]=>4 [1]=>5 [2]=>6)
如果你想在一个多维数组的数组分成两个数组,你可以做
$array=array(1,2,3,0,4,5,6);
$newarray=array_chunk($array,4); //returns [[1,2,3,0],[4,5,6]]
您应该使用数组拆分拆分数组,你想
<?php
$input = array("a", "b", "c", "d", "e");
$output = array_slice($input, 2); // returns "c", "d", and "e"
$output = array_slice($input, -2, 1); // returns "d"
$output = array_slice($input, 0, 3); // returns "a", "b", and "c"
// note the differences in the array keys
print_r(array_slice($input, 2, -1));
print_r(array_slice($input, 2, -1, true));
?>
这不是明显的从你的问题......为什么不把它拆分的地方呢? –
是的,请提供一些更多的信息,你的问题没有显示任何重复值分裂? – Kyle
重复部分在哪里? – Rezigned