Php 如果密钥相同,如何组合两个数组并将其分块
我正在用laravel构建一个应用程序,我有一个问题,我在php中有两个数组:Php 如果密钥相同,如何组合两个数组并将其分块,php,arrays,Php,Arrays,我正在用laravel构建一个应用程序,我有一个问题,我在php中有两个数组: Array1 ( [0] => 15 [1] => 15 [2] => 16 [3] => 16 [4] => 17 [5] => 17 [6] => 17 [7] => 17 ) Array2 ( [0] => 0 [1] => 1 [2] => 1 [
Array1
(
[0] => 15
[1] => 15
[2] => 16
[3] => 16
[4] => 17
[5] => 17
[6] => 17
[7] => 17
)
Array2
(
[0] => 0
[1] => 1
[2] => 1
[3] => 2
[4] => 0
[5] => 1
[6] => 2
[7] => 3
)
在这种情况下,我不能使用array_chunk,因为array2的值是dinamic,如果我组合它,array1的键必须不相同,因此,我如何组合它,使其如下所示:
Array
(
[15] => Array
(
[0] => 0
[1] => 1
)
[16] => Array
(
[0] => 1
[1] => 2
)
[17] => Array
(
[0] => 0
[1] => 1
[2] => 2
[3] => 3
)
)
Array
(
[15] => Array
(
[0] => 0
[1] => 1
)
[16] => Array
(
[0] => 1
[1] => 2
)
[17] => Array
(
[0] => 0
[1] => 1
[2] => 2
[3] => 3
)
)
简单的
foreach
循环:
$arr1 = [15,15,16,16,17,17,17,17];
$arr2 = [0,1,1,2,0,1,2,3];
$result = [];
foreach($arr1 as $k => $v){
$result[$v][] = $arr2[$k];
}
print_r($result);
输出:
我同意了@AlivetoDie@Virb对不起,我不能那样做。我得到了它。两个数组索引必须相同
$array1 =
[
0 => 15,
1 => 15,
2 => 16,
3 => 16,
4 => 17,
5 => 17,
6 => 17,
7 => 17,
];
$array2 =
[
0 => 0,
1 => 1,
2 => 1,
3 => 2,
4 => 0,
5 => 1,
6 => 2,
7 => 3,
];
$arr = array_unique($array1);
print_r($arr);
$newarray = [];
foreach($arr as $ar){
foreach($array1 as $key => $value){
if($ar == $value){
$newarray[$value][] =$array2[$key];
}
}
}
print_r($newarray);