php - 将带有键的数组转换为其他格式的最简单方法是什么

标签 php arrays

我有以下数组:

Array
(
    [key1] => 10
    [key2] => 7
    [key3] => 8
)

我想将其转换为以下结构:

Array
(
    [0] => Array
        (
            [section] => key1
            [quantity] => 10
        ),
    [1] => Array
        (
            [section] => key2
            [quantity] => 7
        ),
    [2] => Array
        (
            [section] => key3
            [quantity] => 8
        )
)

我尝试使用array_map函数,但在闭包内我只得到一个没有键的值。请建议我最简单的方法,无需 foreach

更新
我认为使用 foreach 需要创建一个额外的变量,这会使代码变得困惑并且需要资源。

最佳答案

尝试使用array_walk作为

$result = array();
array_walk($arr, function ($v,$k) use(&$result) {
     $result[] = array('section' => $k, 'quantity' => $v);
});

demo using array_walk

使用foreach

$result = array();
foreach($arr as $key => $value){
    $result[] = array('section' => $key, 'quantity' => $value);
}

print_r($result);

demo using foreach

关于php - 将带有键的数组转换为其他格式的最简单方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30665681/

相关文章:

PHP Laravel - HTML 表单值数组

以指针为参数的c++函数问题

mysql - 如何在Golang中使用另一个数组的ID填充数组

c - 如何正确地将数组分配给结构体以及如何访问在 C 中分配给结构体的数组?

c++ - 如何制作一个元素数量可变的全局数组?

java - java中排序数组包含一些数组

php - 从 View 中的存储文件夹中获取图像 - Laravel 5.4

bash - 如何获取 php 结果并在 bash 中使用它?

php - fatal error : Call to undefined function mysql_connect() error

PHP - db2_bind_param 描述参数失败