我有一个带有重复值的数组,比如
{1
2
3
4
5
6
7
8
9
10
11
12}
和另一个数据
的数组{itema
itemb
itemc
itemd}
我想分割第一个数组,然后与我的输出看起来像的第二个数组合并。
{
itema=>1,5,9
itemb=>2,6,10
itemc=>3,7,11
itemd=>4,8,12
}
我想对数组的元素进行分组。基本上它们是使用xpath获得的,并且4个值组合在一起以成为关于单个主题的信息。我的基本目的是修改第一个数组,以便我可以一起打印相同域的值...我想打印
1,2,3,4, -5,6,7,8- 9,10,11,12
问题可能看起来很奇怪,但我很难完全描述它......对不起
答案 0 :(得分:2)
假设你所说的第一个数组是一个多维数组,如
$firstArray = { a={1,2,3},b={1,2,3} };
您需要做的是遍历每个数组并在此过程中创建一个新数组。
$masterArray = {itema,itemb,itemc,itemd};
$newArray = new Array();
for ($i = 0; $i<$masterArray.length; $i++) {
for ($j = 0; $j<$firstArray.length; $j++){
$newArray[$i] = $masterArray[$i]=>$firstArray[$j][$i];
}
}
var_dump($newArray);
我自己没有对代码进行过测试,因此我无法说它完美无缺,但这基本上就是你想要做的。 随意提问。
编辑:作为讨论的结果,我发现使用数组块函数做了OP想要的,但不是问题。
答案 1 :(得分:0)
这样的事情:
$a = array(1,2,3,4,5,6,7,8,9,10,11,12);
$b = array('a', 'b', 'c', 'd');
$aLength = count($a);
$bLength = count($b);
$c = array();
for ($i = 0; $i < $bLength; ++$i) {
$c[$b[$i]] = array();
$j = $i;
while ($j < $aLength) {
$c[$b[$i]][] = $a[$j];
$j += $bLength;
}
}
var_dump($c);