php - PHP 将数组元素包装在单独的数组中
问题描述
我有以下数组:
$arr = [
"elem-1" => [ "title" => "1", "desc" = > "" ],
"elem-2" => [ "title" => "2", "desc" = > "" ],
"elem-3" => [ "title" => "3", "desc" = > "" ],
"elem-4" => [ "title" => "4", "desc" = > "" ],
]
首先,我需要将值从更改[ "title" => "1", "desc" = > "" ]
为1
(标题的值)。
我这样做是使用array_walk
:
array_walk($arr, function(&$value, $key) {
$value = $value["title"];
});
这将正确替换我的值。我们现在的数组是:
$arr = [
"elem-1" => "1",
"elem-2" => "2",
"elem-3" => "3",
"elem-4" => "4",
]
现在,我需要将这个数组的每个元素转换成它自己的子数组。我不知道如何在没有for
循环的情况下做到这一点。这是期望的结果:
$arr = [
[ "elem-1" => "1" ],
[ "elem-2" => "2" ],
[ "elem-3" => "3" ],
[ "elem-4" => "4" ],
]
解决方案
您可以更改array_walk
回调以生成该数组。
array_walk($arr, function(&$value, $key) {
$value = [$key => $value["title"]];
});
array_values
如果您需要摆脱字符串键,请运行转换后的数组。
$arr = array_values($arr);
推荐阅读
- reactjs - “一层深”是什么意思?
- python - 无法在未获得响应 [500] 的情况下模拟浏览器 POST 请求。为什么?
- python - 尝试从 Python 中的 pandas 数据框中提取似乎是 JSON 的一列,我该如何实现?
- c# - 使用 linq 创建超过 2100 个参数的 searchPredicate 时是否有解决方法?
- postgresql - 如何修复 Postgres `COPY` 命令的 VSCode 语法突出显示
- javafx - 单个阶段中的多个场景
- java - 如何删除我的 WEB-INF/lib jar 文件中的重复项?
- r - 如何根据不同列中的值对列进行子集化?
- linux - /bin/sh 使用假 ls 的权限提升代码 - 为什么会这样?
- javascript - 将 Python 代码实现为 Javascript 时我做错了什么?