php - 从单个数组中创建多个 PHP 数组并将这些新数组存储到新的单个数组中
问题描述
这可能有点笼统,但我会尽力解释我的问题。
所以我有这种类型的关联数组:
Array
(
[ICO_0] => checked
[Investment_0] => checked
[Investment_1] => checked
[Marketing_1] => checked
)
我想做的是根据附加到键末尾的数字( 0, 1 ... )将它分成多个数组。基本上我想让一个新数组看起来像这样:
Array(
Array(
[ICO_0] => checked
[Investment_0] => checked
[Token Sale_0] => checked
),
Array(
[Investment_1] => checked
[Marketing_1] => checked
)
)
我试过用 array_chunk 解决这个问题,但无法让它工作。
我需要这个输出,因为我想根据他们持有的项目对这些嵌套数组进行排序,从最高数量的项目开始。
谢谢!
解决方案
您可以使用几种不同的方法来完成此操作。如果您知道总会有一个下划线,则一种方法是循环并分解键名,抓住最后一个数字,并将其用作您的索引:
$results = [
"ICO_0" => "checked",
"Investment_0" => "checked",
"Investment_1" => "checked",
"Marketing_1" => "checked",
"Investment_2" => "checked",
"Marketing_2" => "checked"
];
foreach($results as $key => $value){
$ex = explode('_', $key);
$new_result[end($ex)][$key] = $value;
}
对我来说返回以下内容:
array:3 [▼
0 => array:2 [▼
"ICO_0" => "checked"
"Investment_0" => "checked"
]
1 => array:2 [▼
"Investment_1" => "checked"
"Marketing_1" => "checked"
]
2 => array:2 [▼
"Investment_2" => "checked"
"Marketing_2" => "checked"
]
]
推荐阅读
- angularjs - main.js(compiled js-files) 来自 Angular 工件的文件替换另一个构建工件
- javascript - 如何在多选下拉菜单中禁用 2 个选项并将该选项变灰
- google-apps-script - 如何为多张纸设置一个 onOpen 函数?
- python - 如何正确实现recv和一次发送
- javascript - 服务器端重定向,无需调用 GET 两次
- php - 如何使用代理服务器通过 websocket 解析数据?
- ios - iOS 测试推送通知的最佳实践(UI 测试)
- flutter - 如何在 Flutter 中选择时更改 ListTile 的背景颜色
- python-3.x - joshDoe 为 Gstreamer 设计的 Pylon gst-plugin-vision
- laravel - 在laravel eloquent中使用belongsToMany时,集合中不存在属性