我有2个数组,想要组合成第三个数组,一个数组作为键,另一个数组作为值。我试图使用array_combine(),但该函数将消除所有重复的键,所以我希望结果数组为2d数组。示例数组如下:
$keys = {0,1,2,0,1,2,0,1,2};
$values = {a,b,c,d,e,f,g,h,i};
$result = array(
[0]=>array(0=>a,1=>b,2=>c),
[1]=>array(0=>d,1=>e,2=>f),
[2]=>array(0=>g,1=>h,2=>i)
);
//What i am using right now is:
$result = array_combine($keys,$values);
但它只返回数组(0 => g,2 => h,3 => i)。任何建议将不胜感激!
答案 0 :(得分:2)
你可以这样做: -
<?php
$keys = array(0,1,2,0,1,2,0,1,2);
$values = array('a','b','c','d','e','f','g','h','i');
$values = array_chunk($values,count(array_unique($keys)));
foreach($values as &$value){
$value = array_combine(array_unique($keys),$value);
}
print_r($values);
答案 1 :(得分:1)
是的,以上是有效的,我也放弃了这个,但我不知道为什么你结合到foreach循环它没有必要。结果仅在第二行给出。你能描述一下吗?
<?php
$keys = array(0,1,2,0,1,2,0,1,2);
$values = array('a','b','c','d','e','f','g','h','i');
$v = array_chunk($values,count(array_unique($keys)));
echo "<pre>";print_r($v);
?>