复杂的php数组组合(两种不同的结构)
我甚至不知道该用什么词:) 我有一个数组:复杂的php数组组合(两种不同的结构),php,arrays,sorting,merge,array-merge,Php,Arrays,Sorting,Merge,Array Merge,我甚至不知道该用什么词:) 我有一个数组: array( 0 => array( 'protein' => 'proteiny', 'total_fat' => 'total faty', 'carbohydrates' => 'carbohydrates', 'food_energy' => 'food energy', ... 和另一个阵列: 1 => array( 'pro
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'),
...
有什么办法吗?如果
$a
是第一个数组,$b
是第二个数组,那么简单的foreach
循环怎么样
foreach($a as $k => $e) {
$res[] = array('slug' => $k, 'name' => $e, 'format' => $b[$k]);
}
实例:您可以在数组$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);
工作。非常感谢!我没有回答马克的问题,因为他们都很棒!很高兴帮助您:)