如何使用array_column或foreach获取结果

时间:2017-11-28 11:27:26

标签: php arrays function loops

这是我的数组,使用array_column或任何循环我想将键替换为下一个元素的值。我不想更改父数组索引

Array
        (
            [0] => Array
            (
                [id] => 11
                [total] => 100000
                [content] => abc
            )

            [1] => Array
            (
                [id] => 22
                [total] => 200000
                [content] => def
            )
        )

这是我想要的数组。

    Array
        (
            [0] => Array
            (
                [11] => 100000
                [content] => abc
            )

            [1] => Array
            (
                [22] => 200000
                [content] => def
            )
        )

3 个答案:

答案 0 :(得分:1)

非常简单试试这个: -

$array = array(
    '0'=>array('id'=> 10,'total'=> 100000,'content' => 'abc'),
    '1'=>array('id'=> 11,'total'=> 200000,'content' => 'def')
);

foreach($array as $key => $val){
    $array[$key][$val['id']] = $val['total'];
    unset($array[$key]['total']);
    unset($array[$key]['id']);
 }
 echo "<pre>"; print_r($array); die;    // print array data here

希望它有所帮助!

答案 1 :(得分:0)

使用'foreach'修改现有数组是完美的,但'array_walk'更具表现力,因为它是专为此任务而设计的。

<?php

$array = [
    [
        'id' => 11,
        'total' => 10000,
        'content' => 'abc'
    ],
    [
        'id' => 22,
        'total' => 200000,
        'content' => 'def'
    ]
];

array_walk($array, function(&$row) {
    $row[$row['id']] = $row['total'];
    unset($row['id'], $row['total']);
});

var_dump($array);

答案 2 :(得分:0)

可以使用array_map函数

完成
$new = array_map(function($x) {
                 return [ $x['id']=> $x['total'], 'content' => $x['content']]; },
                 $array);

demo