第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

根據(jù)頂層(共享值)合并第二層數(shù)組

根據(jù)頂層(共享值)合并第二層數(shù)組

PHP
躍然一笑 2021-11-13 18:55:20
我想合并數(shù)組的頂層,以便共享同一父級的第二級的所有值形成該父級的單個數(shù)組。數(shù)組 1:Array(    [0] => Array        (            [0] => C1            [1] => C1            [2] => C1            [3] => AC            [4] => AC        ))數(shù)組 2:Array(    [0] => Array        (            [0] => C1_complete            [1] => C1_29-95            [2] => C1_49-95            [3] => AC_complete            [4] => AC_29-95        ))想要的結果:Array(    [0] => Array        (            'C1' => Array (C1_complete, C1_29-95, C1_49-95),            'AC' => Array (AC_complete, AC_29-95)        ))實現(xiàn)這一目標的簡單而優(yōu)雅的方法是什么?我尋求一種可以將相同原理推廣到任何兩級數(shù)組結構的解決方案。
查看完整描述

3 回答

?
翻閱古今

TA貢獻1780條經(jīng)驗 獲得超5個贊

如果我只使用數(shù)組 2 和一個簡單的foreach循環(huán),我可以這樣做:


$array2 = [['C1_complete', 

            'C1_29-95',

            'C1_49-95',

            'AC_complete',

            'AC_29-95']];


$buffer = [];


foreach ($array2[0] as $value) {

    $buffer[substr($value, 0, 2)][] = $value;

}


$result[] = $buffer;


echo '<pre>';

print_r($result);

echo '</pre>';

輸出是:


Array

(

    [0] => Array

        (

            [C1] => Array

                (

                    [0] => C1_complete

                    [1] => C1_29-95

                    [2] => C1_49-95

                )


            [AC] => Array

                (

                    [0] => AC_complete

                    [1] => AC_29-95

                )


        )


)

如果該代碼在函數(shù)中,那就太好了:


function classify($array)

{    

    $result = [];

    foreach ($array[0] as $value) {

        $result[substr($value, 0, 2)][] = $value;

    }

    return [$result];

}    


$array2 = [['C1_complete', 

            'C1_29-95',

            'C1_49-95',

            'AC_complete',

            'AC_29-95']];


echo '<pre>';

print_r(classify($array2));

echo '</pre>';

輸出保持不變。


查看完整回答
反對 回復 2021-11-13
?
森林海

TA貢獻2011條經(jīng)驗 獲得超2個贊

對于您的數(shù)組,您不需要第一個循環(huán),但如果您的數(shù)組中有多個數(shù)組。只需循環(huán)和 grep 以鍵開頭的項目:


foreach($array1 as $key => $inner) {

    foreach($inner as $k) {

        $result[$key][$k] = preg_grep("/^$k/", $array2[0]);

    }

}

使用給定的數(shù)組:


foreach($array1[0] as $k) {

    $result[0][$k] = preg_grep("/^$k/", $array2[0]);

}


查看完整回答
反對 回復 2021-11-13
?
慕斯709654

TA貢獻1840條經(jīng)驗 獲得超5個贊

那么,這兩個simpleelegant的方式在這種情況下,因為這可能是基于輿論似乎不大可能給我。一個簡單的 foreach 是實現(xiàn)這一目標的最簡單有效的方法。但是,為了優(yōu)雅,您可以使用array_walk、array_fillarray_combine來實現(xiàn)這一點。


<?php


$arr1 = Array(

    Array

        (

            'C1',

            'C1',

            'C1',

            'AC',

            'AC'

    )

);


$arr2 = Array(

    Array(

            'C1_complete',

            'C1_29-95',

            'C1_49-95',

            'AC_complete',

            'AC_29-95'

    )

);



$data = array_combine(array_values($arr1[0]),array_fill(0,count($arr1[0]),[]));


array_walk($arr2[0],function($value) use (&$data){

    if(isset($data[explode("_",$value)[0]])) $data[explode("_",$value)[0]][] = $value;

});


$data = [$data]; // since you want it inside another array.


print_r($data);

演示: https : //3v4l.org/VhFLH7


查看完整回答
反對 回復 2021-11-13
  • 3 回答
  • 0 關注
  • 200 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號