PHP提取多維數組的鍵值


1.利用遞歸對多維數組的鍵進行升序,並提取多維數組的鍵值對

<?php
$arr = [
    'name'=>'ll',
    'info'=>[
        'time'=>'2022',
        'order'=>[

            'suborder'=>[
                'test2'=>['type'=>'O1','orderId'=>'093232'],
                'test1'=>['orderId'=>'393l93','type'=>'02'],
            ],
            'id'=>1,
        ]
    ],
    'payDate'=>'2021'
];

/*
 *@param mixed $arr 多維數組|鍵值     
*@param $key_str string 本次遞歸的key
*@param $res string 最終結果
*/ function getMutilArrKeysAndValues(&$arr,$key_str='',&$res=''){ //無效數組,退出 if(empty($arr) && empty($key_str)) return; //如果是鍵值,直接將鍵($key_str)和鍵值$arr通過'='連接,並返回該鍵值對 if(!is_array($arr)) return $key_str.'='.$arr.'&'; //根據鍵升序排序 ksort($arr); foreach ($arr as $key => &$value){ //保存本次調用函數時傳入的鍵$key_str $temp1 = $key_str; if($key_str=='') $key_str=$key; else $key_str = $key_str.'.'.$key; if(is_array($value)) { //根據鍵升序排序 ksort($arr[$key]); //遍歷數組里的每個鍵值對 foreach ($value as $key2 => $value2) { $temp =$key_str.'.'.$key2; //再一次遍歷$value里的鍵值對 $key_value_str = getMutilArrKeysAndValues($value2, $temp,$res); $res .= $key_value_str; } } else{ //如果當前key的鍵值不是數組,直接通過‘=’連接 $key_value_str = $key_str.'='.$value.'&'; $res .= $key_value_str; } $key_str = $temp1; }
unset($value); }
$res = ''; getMutilArrKeysAndValues($arr,'',$res); print_r($res); $arr2=['name'=>'Li']; $res2=''; getMutilArrKeysAndValues($arr2,'',$res2); print("\n"); print ($res2);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM