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

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

當(dāng)元素屬于相同的 id 索引時,PHP 將數(shù)組數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換為另一種數(shù)據(jù)結(jié)構(gòu)?

當(dāng)元素屬于相同的 id 索引時,PHP 將數(shù)組數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換為另一種數(shù)據(jù)結(jié)構(gòu)?

PHP
慕碼人2483693 2022-01-02 19:58:52
我需要將 $array1 的數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換為 $array2。我如何將屬于相同 uid 和 title 的城市聚集在一起?$array1 = [array("uid" => "29",                 "title" => "Developer",                 "city" => "Madrid"),           array("uid" => "29",                 "title" => "Developer",                 "city" => "Berlin"),           array("uid" => "29",                 "title" => "Developer",                 "city" => "London"),           array("uid" => "30",                 "title" => "Designer",                 "city" => "Amsterdam"),           ];$array2 = [array("title":"Developer",                 "city" : ["Madrid","Berlin","London"]),           array("title":"Designer",                 "city" : ["Amsterdam"])          ];
查看完整描述

2 回答

?
Qyouu

TA貢獻(xiàn)1786條經(jīng)驗 獲得超11個贊

    $src = array(

        array(

            "uid"   => "29",

            "title" => "Developer",

            "city"  => "Madrid"

        ),

        array(

            "uid"   => "29",

            "title" => "Developer",

            "city"  => "Berlin"

        ),

        array(

            "uid"   => "29",

            "title" => "Developer",

            "city"  => "London"

        ),

        array(

            "uid"   => "30",

            "title" => "Designer",

            "city"  => "Amsterdam"

        ),

    );



    /* placeholder for storing final array */

    $out=array();


    /* iterate through source array */

    foreach( $src as $arr ){

        /* for convenience, cast child array as object */

        $obj=(object)$arr;

        $key=$obj->uid;


        /* construct outpur array format & add values from child arrays/objects */

        if( !array_key_exists( $key, $out ) )$out[ $key ]=array();

        if( !array_key_exists( 'title', $out[ $key ] ) )$out[ $key ]['title']=$obj->title;

        if( !array_key_exists( 'city', $out[ $key ] ) ) $out[ $key ]['city']=array();

        $out[ $key ]['city'][]=$obj->city;

    }

    /* this produces an output array keyed by uid */

    printf('<pre>%s</pre>',print_r($out,true));


    /* If the uid keys are not important and should not appear in output */

    $final=array();

    foreach( $out as $uid => $child )$final[]=$child;


    printf('<pre>%s</pre>',print_r($final,true));

其輸出為:


Array

(

    [29] => Array

        (

            [title] => Developer

            [city] => Array

                (

                    [0] => Madrid

                    [1] => Berlin

                    [2] => London

                )


        )


    [30] => Array

        (

            [title] => Designer

            [city] => Array

                (

                    [0] => Amsterdam

                )


        )


)

Array

(

    [0] => Array

        (

            [title] => Developer

            [city] => Array

                (

                    [0] => Madrid

                    [1] => Berlin

                    [2] => London

                )


        )


    [1] => Array

        (

            [title] => Designer

            [city] => Array

                (

                    [0] => Amsterdam

                )


        )


)


查看完整回答
反對 回復(fù) 2022-01-02
?
慕田峪7331174

TA貢獻(xiàn)1828條經(jīng)驗 獲得超13個贊

這可能是您正在尋找的內(nèi)容:


<?php


$input = [ 

    [

        "uid" => "29",

        "title" => "Developer",

        "city" => "Madrid"

    ], 

    [

        "uid" => "29",

        "title" => "Developer",

        "city" => "Berlin"

    ], 

    [

        "uid" => "29",

        "title" => "Developer",

        "city" => "London"

    ],

    [

        "uid" => "30",

        "title" => "Designer",

        "city" => "Amsterdam"

    ]

];



$output = [];

array_walk($input, function($entry) use (&$output) {

    if (!array_key_exists($entry["uid"], $output)) {

        $output[$entry["uid"]] = [

            "title" => $entry["title"],

            "city" => [$entry["city"]]

        ];

    } else {

        $output[$entry["uid"]]["city"][] = $entry["city"];

    }

});


var_dump($output);

輸出顯然是:


array(2) {

  [29]=>

  array(2) {

    ["title"]=>

    string(9) "Developer"

    ["city"]=>

    array(3) {

      [0]=>

      string(6) "Madrid"

      [1]=>

      string(6) "Berlin"

      [2]=>

      string(6) "London"

    }

  }

  [30]=>

  array(2) {

    ["title"]=>

    string(8) "Designer"

    ["city"]=>

    array(1) {

      [0]=>

      string(9) "Amsterdam"

    }

  }

}


查看完整回答
反對 回復(fù) 2022-01-02
  • 2 回答
  • 0 關(guān)注
  • 218 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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