duanci3845 2016-06-26 18:17
浏览 15
已采纳

乘以2个数组多维并删除键

I have an multidimensional array which contain some numbers, and i want to multiplying value of array which contain key 0 with each other key inside one area array and erase key 0.

Array

Array
(
    [0] => Array
        (
            [0] => 3
            [1] => 5
            [2] => 5
            [3] => 6
            [4] => 7
        )

    [1] => Array
        (
            [0] => 2
            [1] => 7
            [2] => 4
            [3] => 2
            [4] => 8
        )

    [2] => Array
        (
            [0] => 4
            [1] => 2
            [2] => 3
            [3] => 2
            [4] => 5
        )
)

Here's the result i want

Array
(
    [0] => Array
        (
            [0] => 15
            [1] => 15
            [2] => 18
            [3] => 21
        )

    [1] => Array
        (
            [0] => 14
            [1] => 8
            [2] => 4
            [3] => 16
        )

    [2] => Array
        (
            [0] => 8
            [1] => 12
            [2] => 8
            [3] => 20
        )
)

I was already combine it using foreach and for, but it still not working for me, any idea how to do this?

  • 写回答

1条回答 默认 最新

  • dongzhi9906 2016-06-26 18:36
    关注

    The solution using array_map and array_slice functions:

    // $arr is your initial array
    foreach ($arr as &$v) {
        $multiplier = $v[0];
        $v = array_map(function($val) use($multiplier){
            return  $multiplier * $val;        
        }, array_slice($v, 1));
    }
    
    print_r($arr);
    

    The output:

    Array
    (
        [0] => Array
            (
                [0] => 15
                [1] => 15
                [2] => 18
                [3] => 21
            )
    
        [1] => Array
            (
                [0] => 14
                [1] => 8
                [2] => 4
                [3] => 16
            )
    
        [2] => Array
            (
                [0] => 8
                [1] => 12
                [2] => 8
                [3] => 20
            )
    )
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 从Freecad中宏下载的DesignSPHysics,出现如下问题是什么原因导致的(语言-python)
  • ¥30 notepad++ 自定义代码补全提示
  • ¥15 MATLAB有限差分法解一维边值问题
  • ¥200 内网渗透测试 横向渗透 Windows漏洞 Windows权限维持
  • ¥15 数据结构图的相关代码实现
  • ¥15 python中aiohttp.client_exceptions.ContentTypeError
  • ¥30 DeepLung肺结节检测生成最大froc值对应的epoch报错
  • ¥15 信号发生器如何将频率调大,步尽值改成10
  • ¥15 keil 5 编程智能家具,风扇台灯开关,人体感应等
  • ¥100 找一名渗透方面的专家