在 PHP 中获取多维数组值的最佳解决方案



>我正在尝试像这样获取多维数组的所有值

$post = array(
   'k'=>'kk',
   'l'=>'ll',
   'n'=>array(
       't'=>'tt',
       'n'=>array(
           'j'=>'jj',
           'h'=>'hh'
       )
   )
);

我的方法是:

$ordered = array();
foreach($post as $key=>$value){
    if(!is_array($value)){
        $ordered[] = $value;
    }else{
        $r = array_walk_recursive($value, function($v,$k) use(&$ordered){
            $ordered[] =$v;
        });
    } 
}

预期产出:

Array
(
    [0] => kk
    [1] => ll
    [2] => tt
    [3] => jj
    [4] => hh
)

我不知道这是否是最好的解决方案,我正在考虑性能和与旧版PHP的向后兼容性

$ordered = array();
function myfunction($value, $key){
   $ordered[] = $value;
}
array_walk_recursive($post ,"myfunction")
var_dump($ordered);

试试这个。它可能适合您的病情。

编辑

$ordered = array();
    function myfunction($value, $key){
       global $orderd;
       $ordered[] = $value;
    }
    array_walk_recursive($post ,"myfunction")
    var_dump($ordered);

这将正常工作

相关内容

  • 没有找到相关文章

最新更新