Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用array_column或foreach获得结果_Php_Arrays_Function_Loops - Fatal编程技术网

Php 如何使用array_column或foreach获得结果

Php 如何使用array_column或foreach获得结果,php,arrays,function,loops,Php,Arrays,Function,Loops,这是我的数组,使用array_column或任何循环,我想替换键作为下一个元素的值。我不想更改父数组索引 Array ( [0] => Array ( [id] => 11 [total] => 100000 [content] => abc ) [1] =>

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

很简单,请尝试以下方法:-

$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

希望有帮助

使用“foreach”来修改现有的数组非常完美,但是“array\u walk”更具表现力,因为它是为这个任务而设计的

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

它可以通过数组映射函数来完成


向我们展示您的实现…您尝试了什么?您至少必须尝试任何东西。。。
$new = array_map(function($x) {
                 return [ $x['id']=> $x['total'], 'content' => $x['content']]; },
                 $array);