重新排列多维数组

编程入门 行业动态 更新时间:2024-10-07 14:29:17
本文介绍了重新排列多维数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我有一个以下格式的数组:

数组 ([0] =>大批([0] =>一种[1] =>乙[2] =>C)[1] =>大批([0] =>d[1] =>电子[2] =>F)[2] =>大批([0] =>0[1] =>0[2] =>0)[3] =>大批([0] =>100[1] =>200[2] =>300))

第一个数组(外部)中的索引,即 0 表示名称,1 表示类型,2 表示错误,3 表示大小.

我必须按以下格式重新排列这个数组:

数组([0] =>大批([名称] =>一种[类型] =>d[错误] =>0[尺寸] =>100)[1] =>大批([名称] =>乙[类型] =>电子[错误] =>0[尺寸] =>200)[2] =>大批([名称] =>C[类型] =>F[错误] =>0[尺寸] =>300))

有没有什么简单的方法可以解决这个问题?

解决方案

你可以使用 array_map:

//$array 是你的数组$new_array = array_map(null, $array[0], $array[1], $array[2], $array[3]);//然后,更改密钥$new_array = array_map(function($v) {返回数组('名称' => $v[0],'类型' => $v[1],'错误' => $v[2],'大小' => $v[3]);}, $new_array);

一个简单的循环可能会更快.

解释

第一次调用 array_map,如此处所述重组数组并更改键:

输入:array('foo1', 'bar1'), array('foo2', 'bar2')输出:array('foo1', 'foo2'), array('bar1', 'bar2')

注意 null 值作为回调.

然后第二次调用只是在这里根据 OP 的需要更改键,用关联数组替换索引数组.

I have an array in the following format:

Array ( [0] => Array ( [0] => a [1] => b [2] => c ) [1] => Array ( [0] => d [1] => e [2] => f ) [2] => Array ( [0] => 0 [1] => 0 [2] => 0 ) [3] => Array ( [0] => 100 [1] => 200 [2] => 300 ) )

The indices in the first array(outer), i.e. 0 is for name, 1 for type, 2 for error and 3 for size.

I have to rearrange this array in the following format:

Array ( [0] => Array ( [name] => a [type] => d [error] => 0 [size] => 100 ) [1] => Array ( [name] => b [type] => e [error] => 0 [size] => 200 ) [2] => Array ( [name] => c [type] => f [error] => 0 [size] => 300 ) )

Is there any short method to sort out this?

解决方案

You can do this with array_map:

// $array is your array $new_array = array_map(null, $array[0], $array[1], $array[2], $array[3]); // Then, change keys $new_array = array_map(function($v) { return array( 'name' => $v[0], 'type' => $v[1], 'error' => $v[2], 'size' => $v[3] ); }, $new_array);

A simple loop may be faster though.

EDIT : Explanations

The first call to array_map, as described here reorganize arrays and change keys:

Input: array('foo1', 'bar1'), array('foo2', 'bar2') Output: array('foo1', 'foo2'), array('bar1', 'bar2')

Note the null value as a callback.

Then the second call is just here to change keys as the OP wanted, replacing indexed array by an associative one.

更多推荐

重新排列多维数组

本文发布于:2023-11-29 15:06:32,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1646746.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:多维   数组   排列

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!