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

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

使用鍵重新排列多維數組值

使用鍵重新排列多維數組值

PHP
郎朗坤 2023-07-01 15:32:18
我有一個多維數組,我想重新排列數組,從每個數組中獲取父鍵并將值分配給每個數組中的該鍵。Array    (        [make] => Volvo 1,Volvo 2        [model] => Make 1,Make 2        [vehicleno] => Reg 1,reg 2        [reg_state] => QLDS,QLDS    )預期結果為Array([0] => Array        (            [make] => Volvo            [model] => FH16            [vehicleno] => RS95SMB            [reg_state] => QLDS        )[1] => Array        (            [make] => Volvonew            [model] => 123            [vehicleno] => RS95SMB            [reg_state] => QLDS        ))
查看完整描述

4 回答

?
largeQ

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

您可以通過獲取舊變量的大小并使用 for 循環來創建一個新數組

試試這個


<?php

// pre_array is your old array and new_array is arranged one...

$i = 0;

$size = sizeof($pre_array);

$new_array = array();


for( $x=0 ; $x<$size ; $x++ ){


 $temp_array = array(

    'make'=>$pre_array['make'][$x];

    'model'=>$pre_array['model'][$x];

    'vehicleno'=>$pre_array['vehicleno'][$x];

    'reg_state'=>$pre_array['reg_state'][$x];

 );


 array_push($new_array,$temp_array);

}

print_r($new_array);

?>

順便說一句,這是我的第一個答案......呵呵


查看完整回答
反對 回復 2023-07-01
?
HUH函數

TA貢獻1836條經驗 獲得超4個贊

這可以通過使用從原始數組中提取所有鍵array_keys(),然后使用從foreach()原始數組中獲取每個元素的數據來實現:


<?php


    $data = array(

            "make" => array("Volvo","VolvoNew"),

            "model" => array

                ( "FH16","123"

                ),

        

            "vehicleno" => array

                ("RS95SMB","RS95SMB"

                ),

        

            "reg_state" => array

                (

                    "QLDS","QLDS"

                )

        );

        

    print_r($data);

    

    $newArray = array();

    $newArrayKeys = array_keys($data);      //extract all the keys from the associative array

    $newArrayLength = count($data["make"]); //get number of makes which is the number of elements in new array

    

    for($i=0;$i<$newArrayLength;$i++){

        $currElement = array();


        // loop through all the keys from the original array and grab the data for the current index

        foreach($newArrayKeys as $key){

            $currElement[$key] = $data[$key][$i];

        }

        

        $newArray[$i] = $currElement;   //push current element to the newArray

    }

    

    print_r($newArray);


?>


查看完整回答
反對 回復 2023-07-01
?
HUX布斯

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

嘗試做這樣的事情


$array = [

    "make"      => ['Volvo', 'Volvonew'],

    "model"     => ['FH16','123'],

    "vehicleno" => ['RS95SMB','RS95SMB'],

    "reg_state" => ['QLDS', 'QLDS']

];


$list_1 = [];

$list_2 = [];


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

    $list_1[$key] = $value[0];

    $list_2[$key] = $value[1];

}



var_dump($list_1);

var_dump($list_2);


查看完整回答
反對 回復 2023-07-01
?
泛舟湖上清波郎朗

TA貢獻1818條經驗 獲得超3個贊

另一種方法是通過簡單的foreach()循環來迭代多維數組,并根據您的要求將內部第一個和第二個元素值推送到新數組。


$i=0;

$return = array();

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

     $return[$i][$key] = $value[$i];

     $return[$i+1][$key] = $value[$i+1];

}

print_r(($return));

工作演示: https://3v4l.org/1CBgn


查看完整回答
反對 回復 2023-07-01
  • 4 回答
  • 0 關注
  • 245 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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