tony-sol / flatter
简单的flatter,允许您展平和充气多维数组
v1.1.1
2023-02-02 11:48 UTC
Requires
- php: >=8.1.0
Requires (Dev)
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采取合理措施确保本存储库中发布的信息的相关性,但不对维护或更新本存储库或其部分承担责任,除非公司独立于公司框架内自行决定并通知第三方。
所有信息和源代码均以“原样”提供,不提供任何明示或暗示的保证。使用源代码或其部分完全由您自行决定和承担风险。公司“城市移动”有限责任公司采取合理措施确保本存储库中发布的信息的相关性,但不对维护或更新本存储库或其部分承担责任,除非公司独立于公司框架内自行决定并通知第三方。