簡體   English   中英

如果鍵相同,如何合並兩個數組並將其分塊

[英]How to combine two array and chunk it if the key is same

我正在使用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
    [3] => 2
    [4] => 0
    [5] => 1
    [6] => 2
    [7] => 3
)

在這種情況下,我不能使用array_chunk,因為array2的值是動態的,如果我將其組合,則array1的鍵不能相同,因此,如何將其組合成這樣:

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);

輸出:

Array
(
    [15] => Array
        (
            [0] => 0
            [1] => 1
        )

    [16] => Array
        (
            [0] => 1
            [1] => 2
        )

    [17] => Array
        (
            [0] => 0
            [1] => 1
            [2] => 2
            [3] => 3
        )
)
$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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM