【问题标题】:How to use array_column or foreach to get result如何使用 array_column 或 foreach 获取结果
【发布时间】:2017-11-28 11:27:25
【问题描述】:

这是我的数组,使用 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
            )
        )

【问题讨论】:

  • 向我们展示你的实现...
  • 你尝试了什么?
  • 你至少要尝试任何事情......

标签: php arrays function loops


【解决方案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

希望对你有帮助!

【讨论】:

    【解决方案2】:

    使用 '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);
    

    【讨论】:

      【解决方案3】:

      可以用array_map函数来完成

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

      demo

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-09-18
        • 2018-04-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多