PHP数组:如何将数组拆分为新的组数组

PHP数组:如何将数组拆分为新的组数组,php,arrays,multidimensional-array,snmp,Php,Arrays,Multidimensional Array,Snmp,我有这样的数组结构: 排列( ) 我需要像这样将单独的数组分成新的多维数组组 排列 ( [0]=>数组( [0]=>整数:1 [1] =>字符串:lo [2] =>整数:软件环回(24) ) ..… ) 以“标准方式”(我的意思是索引0、1、2…)重新索引输入数组,然后您可以编写以下函数 $a = array(1,2,3,21,22,23,31,32,33); // input array - example function rearrange($a) { $r = array();

我有这样的数组结构:

排列(

)

  • 我需要像这样将单独的数组分成新的多维数组组

    排列 (
    [0]=>数组(
    [0]=>整数:1
    [1] =>字符串:lo
    [2] =>整数:软件环回(24)
    )
    ..…
    )


  • 以“标准方式”(我的意思是索引0、1、2…)重新索引输入数组,然后您可以编写以下函数

    $a = array(1,2,3,21,22,23,31,32,33); // input array - example
    
    function rearrange($a) {
        $r = array();
        $count = count($a) / 3;
    
        for ($i = 0; $i<$count; $i++) {
            $r[$i] = array(
                    0 => $a[$i],
                    1 => $a[$i+$count],
                    2 => $a[$i+2*$count]
                );
            }
        return ($r);
    }  
    
    var_dump($a);
    $a = rearrange($a);
    var_dump($a);
    
    $a=数组(1,2,3,21,22,23,31,32,33);//输入数组-示例
    函数重新排列($a){
    $r=数组();
    $count=计数($a)/3;
    对于($i=0;$i$a[$i],
    1=>$a[$i+$count],
    2=>$a[$i+2*$count]
    );
    }
    回报($r);
    }  
    var_dump($a);
    $a=重新排列($a);
    var_dump($a);
    
    如果总是6人一组,那么区块和转置:

    $myArray = [
      '1.1' => 'INTEGER: 1',    
      '1.2' => 'INTEGER: 2',    
      '1.3' => 'INTEGER: 3',    
      '1.4' => 'INTEGER: 4',    
      '1.5' => 'INTEGER: 5',    
      '1.6' => 'INTEGER: 6',    
      '2.1' => 'STRING: lo',    
      '2.2' => 'STRING: eth0',    
      '2.3' => 'STRING: eth1',    
      '2.4' => 'STRING: wifi0',    
      '2.5' => 'STRING: ath0',    
      '2.6' => 'STRING: br0',
      '3.1' => 'INTEGER: softwareLoopback(24)',
      '3.2' => 'INTEGER: ethernetCsmacd(6)',  
      '3.3' => 'INTEGER: ethernetCsmacd(6)',  
      '3.4' => 'INTEGER: ethernetCsmacd(6)',  
      '3.5' => 'INTEGER: ethernetCsmacd(6)',    
      '3.6' => 'INTEGER: ethernetCsmacd(6)',
    ];
    
    $newArray = call_user_func_array(
        'array_map',
        array_merge(
            array(NULL),
            array_chunk($myArray, 6)
        )
    );
    var_dump($newArray);
    

    非常感谢马克·贝克,我是新手,喜欢编程^__^
    $myArray = [
      '1.1' => 'INTEGER: 1',    
      '1.2' => 'INTEGER: 2',    
      '1.3' => 'INTEGER: 3',    
      '1.4' => 'INTEGER: 4',    
      '1.5' => 'INTEGER: 5',    
      '1.6' => 'INTEGER: 6',    
      '2.1' => 'STRING: lo',    
      '2.2' => 'STRING: eth0',    
      '2.3' => 'STRING: eth1',    
      '2.4' => 'STRING: wifi0',    
      '2.5' => 'STRING: ath0',    
      '2.6' => 'STRING: br0',
      '3.1' => 'INTEGER: softwareLoopback(24)',
      '3.2' => 'INTEGER: ethernetCsmacd(6)',  
      '3.3' => 'INTEGER: ethernetCsmacd(6)',  
      '3.4' => 'INTEGER: ethernetCsmacd(6)',  
      '3.5' => 'INTEGER: ethernetCsmacd(6)',    
      '3.6' => 'INTEGER: ethernetCsmacd(6)',
    ];
    
    $newArray = call_user_func_array(
        'array_map',
        array_merge(
            array(NULL),
            array_chunk($myArray, 6)
        )
    );
    var_dump($newArray);