How to “flatten” a multi-dimensional array to simple one in PHP?

前端 未结 23 2487
没有蜡笔的小新
没有蜡笔的小新 2020-11-22 01:03

It\'s probably beginner question but I\'m going through documentation for longer time already and I can\'t find any solution. I thought I could use implode for each dimensio

23条回答
  •  长发绾君心
    2020-11-22 01:15

    A non-recursive solution (but order-destroying):

    function flatten($ar) {
        $toflat = array($ar);
        $res = array();
    
        while (($r = array_shift($toflat)) !== NULL) {
            foreach ($r as $v) {
                if (is_array($v)) {
                    $toflat[] = $v;
                } else {
                    $res[] = $v;
                }
            }
        }
    
        return $res;
    }
    

提交回复
热议问题