复杂的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'),

    ...

有没有办法做到这一点?


桃花长相依
浏览 135回答 2
2回答

翻翻过去那场雪

您可以在具有范围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);

MYYA

foreach当$a第一个数组$b是第二个数组时,简单循环如何:foreach($a as $k => $e) {    $res[] = array('slug' => $k, 'name' => $e, 'format' => $b[$k]);}现场示例:3v4l
打开App,查看更多内容
随时随地看视频慕课网APP