PHP:array_flatten多维数组扁平化

简介: PHP:array_flatten多维数组扁平化

方法实现


/**
 * 多维数组扁平化
 * @param $array array
 * @return array
 */
if (!function_exists('array_flatten')) {
    function array_flatten($array)
    {
        $result = [];
        foreach ($array as $value) {
            if (is_array($value)) {
                $result = array_merge($result, array_flatten($value));
            } else {
                $result[] = $value;
            }
        }
        return $result;
    }
}

代码示例


<?php
$arr = [
    [
        '1', '2'
    ],
    [
        '1', '4', '5'
    ],
];
print_r(json_encode(array_flatten($arr)));
// ["1","2","1","4","5"]
// 去重处理,注意需要取值操作
print_r(json_encode(array_values(array_unique(array_flatten($arr)))));
// ["1","2","4","5"]
相关文章
|
5月前
|
测试技术 PHP 开发者
PHP 数组查找:为什么 `isset()` 比 `in_array()` 快得多?
PHP 数组查找:为什么 `isset()` 比 `in_array()` 快得多?
|
9月前
|
前端开发 JavaScript 数据格式
通过array.reduce()实现数据汇总、条件筛选和映射、对象属性的扁平化、转换数据格式、聚合统计、处理树结构数据和性能优化,reduce()的使用详解(附实际应用代码)
array.reduce()可以用来数据汇总、条件筛选和映射、对象属性的扁平化、转换数据格式、聚合统计、处理树结构数据、性能优化等,使用难度相对高一些,但是能大大减少代码量。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时
|
9月前
|
JSON 前端开发 API
多维数组操作,不要再用遍历循环foreach了!来试试数组展平的小妙招!array.flat()用法与array.flatMap() 用法及二者差异详解
理论上array.flat()能做的事情,array.flatMap()都可以做,但是array.flat()更简单,占用内存更少,执行更快。 这个相对冷门一些,w3school上都没有相关教程,看到就是赚到,收藏就是财富! 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助
|
JavaScript 前端开发 PHP
读boost::multi_array有感,多维数组实现(非类型模板,偏特化)
读boost::multi_array有感,多维数组实现(非类型模板,偏特化)
|
搜索推荐 算法 PHP
PHP 数组(Array) - 排序算法
PHP 数组(Array) - 排序算法
218 0
|
PHP 索引
PHP 数组(Array)
PHP 数组(Array)
170 0
|
PHP
php函数基础学习:array_chunk() 函数把一个数组分割为新的数组块
php函数基础学习:array_chunk() 函数把一个数组分割为新的数组块
158 0
PHP 多维数组排序
PHP 多维数组排序
203 0
|
存储 JSON 安全
为什么我觉得GoFrame的garray比PHP的array还好用?
写过PHP的同学都知道 PHP的数组Array非常好用,特别灵活。我在写PHP之前使用Java做安卓开发,在接触PHP的数组Array之后,直呼太香了!
178 0
为什么我觉得GoFrame的garray比PHP的array还好用?

热门文章

最新文章

  • 1
    Java 中数组Array和列表List的转换
    595
  • 2
    JavaScript中通过array.map()实现数据转换、创建派生数组、异步数据流处理、复杂API请求、DOM操作、搜索和过滤等,array.map()的使用详解(附实际应用代码)
    557
  • 3
    通过array.reduce()实现数据汇总、条件筛选和映射、对象属性的扁平化、转换数据格式、聚合统计、处理树结构数据和性能优化,reduce()的使用详解(附实际应用代码)
    1326
  • 4
    通过array.some()实现权限检查、表单验证、库存管理、内容审查和数据处理;js数组元素检查的方法,some()的使用详解,array.some与array.every的区别(附实际应用代码)
    398
  • 5
    通过array.every()实现数据验证、权限检查和一致性检查;js数组元素检查的方法,every()的使用详解,array.some与array.every的区别(附实际应用代码)
    249
  • 6
    多维数组操作,不要再用遍历循环foreach了!来试试数组展平的小妙招!array.flat()用法与array.flatMap() 用法及二者差异详解
    160
  • 7
    别再用双层遍历循环来做新旧数组对比,寻找新增元素了!使用array.includes和Set来提升代码可读性
    186
  • 8
    Array.forEach实战详解:简化循环与增强代码可读性;Array.forEach怎么用;面对大量数据时怎么提高Array.forEach的性能
    126
  • 9
    深入理解 JavaScript 中的 Array.find() 方法:原理、性能优势与实用案例详解
    449
  • 10
    JavaScript 中通过Array.sort() 实现多字段排序、排序稳定性、随机排序洗牌算法、优化排序性能,JS中排序算法的使用详解(附实际应用代码)
    831