- 49
- 0
现在有一个二维数组格式如下:
Array
(
[0] => Array
(
[id] => 38
[goods_id] => 77426
[model_name] => 颜色
[model_sub_name] => Array
(
[0] => 黑色
[1] => 白色
[2] => 红色
[3] => 浅蓝色
[4] => 紫色
)
[goods_stock] => Array
(
[0] => 321
)
[curr_price] => Array
(
[0] => 99
)
[goods_weight] => Array
(
[0] => 280
)
)
[1] => Array
(
[id] => 39
[goods_id] => 77426
[model_name] => 尺码
[model_sub_name] => Array
(
[0] => 32A
[1] => 34A
[2] => 36A
[3] => 32B
[4] => 34B
[5] => 36B
[6] => 38B
[7] => 34C
[8] => 36C
[9] => 38C
[10] => 40C
[11] =>
)
[goods_stock] => Array
(
[0] => 321
)
[curr_price] => Array
(
[0] => 99
)
[goods_weight] => Array
(
[0] => 280
)
)
)
现在需要将这个二维数组变成如下格式:
Array
(
[0] => Array
(
[model_name] => 颜色
[model_sub_name] => 黑色
[goods_stock] => 321
[curr_price] => 99
[goods_weight] => 280
)
[1] => Array
(
[model_name] => 颜色
[model_sub_name] => 白色
[goods_stock] => 321
[curr_price] => 99
[goods_weight] => 280
)
……这里省略N个数组
[N+1] => Array
(
[model_name] => 尺码
[model_sub_name] => 32A
[goods_stock] => 321
[curr_price] => 99
[goods_weight] => 280
)
[N+2] => Array
(
[model_name] => 尺码
[model_sub_name] => 34A
[goods_stock] => 321
[curr_price] => 99
[goods_weight] => 280
)
这里也省略总数组第二个元素的几条记录
)
在上述数组中goods_stock、curr_price、goods_weight都是数组,如果这几个键中的数组只有一个元素,那么在model_name一样的前提下,goods_stock、curr_price、goods_weight都取这一个值,否则,就取model_sub_name中元素下标对应的goods_stock、curr_price、goods_weight中的值。比如model_sub_name为“白色”时对应的下标是1,上述数组中goods_stock、curr_price、goods_weight都只有一个元素,那么就取这一个元素的值,如果不是一个元素,则取goods_stock[1]、curr_price[1]、goods_weight[1]的值,不知道这样的描述是否理解。求助大神帮忙解决一下。
- 共 0 条
- 全部回答
-
北极猎手 普通会员 1楼
在PHP中,你可以使用array_column()函数将二维数组转换为一维数组。以下是一个示例:
```php // 二维数组 $array = array( array('name' => 'John', 'age' => 30), array('name' => 'Jane', 'age' => 25) );
// 使用array_column()函数将二维数组转换为一维数组 $one_dim_array = array_column($array, 0);
// 输出一维数组 print_r($one_dim_array); ```
在这个示例中,我们首先定义了一个二维数组,然后使用array_column()函数将数组的第一个元素(即"John"和"Jane")转换为一维数组。最后,我们使用print_r()函数输出一维数组。
如果你想将一维数组转换回二维数组,你可以使用array_map()函数和array_column()函数的第三个参数。以下是一个示例:
```php // 一维数组 $array = array( 'name' => 'John', 'age' => 30 );
// 使用array_map()函数和array_column()函数将一维数组转换为二维数组 $two_dim_array = array_map('array_column', $array);
// 输出二维数组 print_r($two_dim_array); ```
在这个示例中,我们首先定义了一个一维数组,然后使用array_map()函数和array_column()函数的第三个参数将数组的第一个元素(即"John")转换为二维数组。最后,我们使用print_r()函数输出二维数组。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
