tony-sol/flatter

简单的flatter,允许您展平和充气多维数组

v1.1.1 2023-02-02 11:48 UTC

This package is auto-updated.

Last update: 2024-09-29 09:14:03 UTC


README

简单的flatter,允许您展平和充气多维数组

用法

$data = [
    'array' => [
        'key' => 'value',
        'inner' => [
            'key' => 1,
            'with_separator' => 2,
        ],
    ],
];

$flattenData = (new \Flatter($data))->flatten();
// $flattenData = [
//     'array_key' => 'value',
//     'array_inner_key' => 1,
//     'array_inner_with_separator' => 2,
// ]

$inflatedData = (new \Flatter($flattenData))->inflate();
// $inflatedData = [
//     'array' => [
//         'key' => 'value',
//         'inner' => [
//             'key' => 1,
//             'with' => [
//                 'separator' => 2,
//             ],
//         ],
//     ],
// ];

使用自定义分隔符

$flattenData = (new \Flatter($data))->withCompositeKeySeparator('#')->flatten();
// $flattenData = [
//     'array#key' => 'value',
//     'array#inner#key' => 1,
//     'array#inner#with_separator' => 2,
// ]

$inflatedData = (new \Flatter($data))->withCompositeKeySeparator('#')->inflate();
// $inflatedData = [
//     'array' => [
//         'key' => 'value',
//         'inner' => [
//             'key' => 1,
//             'with_separator' => 2,
//         ],
//     ],
// ];

在原始键中使用转义分隔符

$flattenData = (new \Flatter($data))->escapingSeparatorInKeys()->flatten();
// $flattenData = [
//     'array_key' => 'value',
//     'array_inner_key' => 1,
//     'array_inner_with\_separator' => 2,
// ]

$inflatedData = (new \Flatter($flattenData))->escapingSeparatorInKeys()->inflate();
// $inflatedData = [
//     'array' => [
//         'key' => 'value',
//         'inner' => [
//             'key' => 1,
//             'with_separator' => 2,
//         ],
//     ],
// ];

在键/值上使用闭包

$flattenData = (new \Flatter($data))
    ->applyClosureToKeys(static function (string $key) { return strtoupper($key); })
    ->applyClosureToValues(static function ($value) { return (string)$value; })
    ->flatten();
// $flattenData = [
//     'ARRAY_KEY' => 'value',
//     'ARRAY_INNER_KEY' => '1',
//     'ARRAY_INNER_WITH_SEPARATOR' => '2',
// ]

$inflatedData = (new \Flatter($flattenData))
    ->applyClosureToKeys(static function (string $key) { return strtolower($key); })
    ->applyClosureToValues(static function ($value) { return "--{$value}--"; })
    ->inflate();
// $inflatedData = [
//     'array' => [
//         'key' => '--value--',
//         'inner' => [
//             'key' => '--1--',
//             'with' => [
//                 'separator' => '--2--',
//             ],
//         ],
//     ],
// ]

免责声明

所有信息和源代码均以“原样”提供,不提供任何明示或暗示的保证。使用源代码或其部分完全由您自行决定和承担风险。Citymobil LLC采取合理措施确保本存储库中发布的信息的相关性,但不对维护或更新本存储库或其部分承担责任,除非公司独立于公司框架内自行决定并通知第三方。

所有信息和源代码均以“原样”提供,不提供任何明示或暗示的保证。使用源代码或其部分完全由您自行决定和承担风险。公司“城市移动”有限责任公司采取合理措施确保本存储库中发布的信息的相关性,但不对维护或更新本存储库或其部分承担责任,除非公司独立于公司框架内自行决定并通知第三方。