php - 复杂的php数组组合(两种不同的结构)
问题描述
我什至不知道该用什么词:)
我有这个数组:
array(
0 => array(
'protein' => 'proteiny',
'total_fat' => 'total faty',
'carbohydrates' => 'carbohydrates',
'food_energy' => 'food energy',
...
还有另一个数组:
1 => array(
'protein' => 'grams',
'total_fat' => 'grams',
'carbohydrates' => 'grams',
'food_energy' => 'kcals',
...
我想将它们组合成这个结构中的一个新数组:
$newone = array(
array('slug' => 'protein', 'name' => 'proteiny', 'format' => 'grams'),
array('slug' => 'total_fat', 'name' => 'total faty', 'format' => 'grams'),
array('slug' => 'carbohydrates', 'name' => 'carbohydrates', 'format' => 'grams'),
array('slug' => 'food_energy', 'name' => 'food energy', 'format' => 'kcals'),
...
有什么办法吗?
解决方案
您可以在具有范围use($b)的数组上使用array_map( )来制作. 例子:$a
$newone
$a = array('protein' => 'proteiny', 'total_fat' => 'total faty', 'carbohydrates' => 'carbohydrates', 'food_energy' => 'food energy');
$b = array('protein' => 'grams', 'total_fat' => 'grams', 'carbohydrates' => 'grams', 'food_energy' => 'kcals');
$newone = array_map(function($val, $slug) use ($b) {
return array('slug' => $slug, 'name' => $val, 'format' => $b[$slug]);
}, $a, array_keys($a));
print_r($newone);
工作演示。
推荐阅读
- java - 如何识别 Java 程序中对外部类和方法的声明和引用?
- c# - 尝试使用 GDAL/OGR 打开 shapefile 时,“gdalconst_wrap”dll 丢失或无法读取
- python - 序列化字段时如何获取字符串片段(Django / DRF)
- spring - 在初始化整个上下文或执行服务器启动后,有什么方法可以初始化 spring bean?
- css - 有没有办法制作三角HR?
- python - 将日期从整数转换为日期格式
- c# - 在 while 循环中不更新值
- docker - Docker compose 不会启动 selenium 网格
- php - 表单提交奇怪的行为
- mysql - 如何使这个 sql INSERT SELECT 查询在空表上工作?