为了账号安全,请及时绑定邮箱和手机立即绑定

将数组插入数组集合而不循环

将数组插入数组集合而不循环

PHP
阿晨1998 2022-07-16 17:04:59
我有两个数组..阵列 1$arr1 = array(    'task' => 'delete')阵列 2$arr2 = array(            array(                'id'    => '1',                 'type'  => 'post',            ),            array(                'id'    => '2',                 'type'  => 'category',            ),            array(                'id'    => '1',                 'type'  => 'tag',            ),        );我如何将 Array 1 插入到所有 Array 2 集合中,结果是这样。$arr2 = array(            array(                'id'    => '1',                'task' => 'delete',                'type'  => 'post',            ),            array(                'id'    => '2',                 'task' => 'delete',                'type'  => 'category',            ),            array(                'id'    => '1',                 'task' => 'delete',                'type'  => 'tag',            ),        );我可以很容易地通过使用循环来获得结果,但我想不使用循环来实现它。有什么建议吗?谢谢 :)
查看完整描述

3 回答

?
白衣非少年

TA贡献1155条经验 获得超0个赞

为了将array2中的所有索引推入array_walk,您可以将array_walk与数组合并结合使用,例如,您可以查看下面的代码


    <?php


   $array1 = array(

    'task' => 'delete',

    'before' =>'test'

);



    $array2=array(

                array(

                    'id'    => '1', 

                    'type'  => 'post',

                ),

                array(

                    'id'    => '2', 

                    'type'  => 'category',

                ),

                array(

                    'id'    => '1', 

                    'type'  => 'tag',

                ),

            );



    array_walk($array2, function(&$newarray) use ($array1) {

        $newarray = array_merge($newarray, $array1);

    });


print_r($array2);


?>

array_walk - 将用户提供的函数应用于数组的每个成员,而 array_merge,将两个数组合并为一个数组


结果


Array (

[0] => Array ( [id] => 1 [type] => post [task] => delete [before] => test ) 

[1] => Array ( [id] => 2 [type] => category [task] => delete [before] => test )

[2] => Array ( [id] => 1 [type] => tag [task] => delete [before] => test ) )

Git 中心


https://github.com/fahadpatel/insert-array-into-array-without-loop


查看完整回答
反对 回复 2022-07-16
?
皈依舞

TA贡献1851条经验 获得超3个赞

您可以使用array_walk跳过编写循环。


$arr1 = array(

    'task' => 'delete'

);


$arr2 = array(

            array(

                'id'    => '1', 

                'type'  => 'post',

            ),

            array(

                'id'    => '2', 

                'type'  => 'category',

            ),

            array(

                'id'    => '1', 

                'type'  => 'tag',

            ),

        );


array_walk($arr2, function(&$item) use ($arr1) {

    $item = array_merge($item, $arr1);

});

array_walk 您可以在此处查看文档。


查看完整回答
反对 回复 2022-07-16
?
开满天机

TA贡献1786条经验 获得超13个赞

您可以使用array_map. 虽然它在幕后循环(没有真正的解决方法),但至少你不必自己做:


$arr3 = array_map(static function ($entry) use ($arr1) {

  return $entry + $arr1;

}, $arr2);

PHP 7.4 版本:


$arr3 = array_map(static fn($entry) => $entry + $arr1, $arr2);

演示:https ://3v4l.org/2u2SR


查看完整回答
反对 回复 2022-07-16
  • 3 回答
  • 0 关注
  • 161 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号