这个小技巧你可能不知道。

<?php

$data = [
    'testArray' => [
        'string1',
        'string2',
        [
            'string1',
            'string2',
        ],
    ],
    'teststring'
];
echo "<pre>";

print_r(iterator_to_array(
        new RecursiveIteratorIterator(
            new RecursiveArrayIterator($data)
        ),
        false  // use_keys:默认true
    )
);

/*Array
(
    [0] => string1
    [1] => string2
    [2] => string1
    [3] => string2
    [4] => teststring
)*/
本作品采用《CC 协议》,转载必须注明作者和本文链接
yourself
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 4
Code_Er

为什么要new RecursiveIteratorIterator 的??

5年前 评论
yourself

@Code_Er
ArrayIterator类和ArrayObject类,只支持遍历一维数组。
如果要遍历多维数组,必须先用RecursiveIteratorIterator生成一个Iterator,然后再对这个Iterator使用RecursiveIteratorIterator。

5年前 评论

collect($data)->flatten()->all() 你可能不知道这个技巧

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!