亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

分解數據并構建新數組

分解數據并構建新數組

PHP
肥皂起泡泡 2023-04-21 15:31:30
我需要分解數組的鍵值并構建一個具有分解結果的新數組。下面的代碼適用于一個子數組,我想我缺少一個 for 循環來處理數組值迭代。該解決方案還應處理“金融”子數組數據,以便在新數組中展開并顯示。我在后期會有 9 個子數組,因此需要分解數據并將結果移動到新數組中。我的代碼<?php$array = [  'company_info' => [    'country_period_0'  => 10,    'currency_period_0' => 20  ],  'finance'      => [    'values_period_0' => 30  ]];$newArray = [];for ($i=0; $i <= 1 ; $i++) {  $array_1     = $array['company_info'];  $arrayKeys   = array_keys($array_1);  $arrayValues = array_values($array_1);  $keySplits   = explode("_", $arrayKeys[$i]);  for ($i=0; $i <= 2 ; $i++) {    $newArray[] = $keySplits[$i];  }    $newArray[3] = $arrayValues[0];}print_r($newArray);結果Array(    [0] => country    [1] => period    [2] => 0    [3] => 10)想要的結果['company_info]Array(    [0] => country    [1] => period    [2] => 0    [3] => 10)Array(    [0] => currency    [1] => period    [2] => 0    [3] => 20)['finance']Array(    [0] => values    [1] => period    [2] => 0    [3] => 30)
查看完整描述

2 回答

?
慕仙森

TA貢獻1827條經驗 獲得超8個贊

您可以使用循環大大簡化它foreach,尤其是每次獲取鍵和值以幫助構建數組。


這也使用第一級的鍵explode()將結果添加到using ,但也只是將值添加到數組的末尾 using ... $newArray$newArray[$mainKey][][]


foreach ( $array as $mainKey => $elements )  {

    foreach ( $elements as $subKey => $value ){

        $newData = explode("_", $subKey);

        $newData[] = $value;

        $newArray[$mainKey][] = $newData;

    }

}

用你的測試數據給出......


Array

(

    [company_info] => Array

        (

            [0] => Array

                (

                    [0] => country

                    [1] => period

                    [2] => 0

                    [3] => 10

                )


            [1] => Array

                (

                    [0] => currency

                    [1] => period

                    [2] => 0

                    [3] => 20

                )


        )


    [finance] => Array

        (

            [0] => Array

                (

                    [0] => values

                    [1] => period

                    [2] => 0

                    [3] => 30

                )


        )


)

我只是注意到我丟失了第二個company_info數據,所以這意味著值將始終是數組,除非你真的只在需要時才需要它們是數組。


查看完整回答
反對 回復 2023-04-21
?
30秒到達戰場

TA貢獻1828條經驗 獲得超6個贊

$new_array=[];

foreach($array as $category => $tmp ){


  foreach($tmp as $key => $value){

    $exp = explode('_', $key);

    $exp[] = $value;

    $new_array[ $category ][] = $exp;

    }


}


查看完整回答
反對 回復 2023-04-21
  • 2 回答
  • 0 關注
  • 129 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號