Php 将数据合并到";类型数组";数组中的元素,合并到一个新数组中

Php 将数据合并到";类型数组";数组中的元素,合并到一个新数组中,php,Php,我想我的头衔让你大吃一惊。但我需要的是: 我有这样一个数组: array( '0' => array( 'the','data','i'), '1' => array( 'need', 'is', 'this'), '2' => array( 'complete', 'sentence') ); 我想成为: array( 'the','data','i','need','is','this','complete','sentence' ); 什么是随机的: 子数组元

我想我的头衔让你大吃一惊。但我需要的是:

我有这样一个数组:

array(
 '0' => array( 'the','data','i'),
 '1' => array( 'need', 'is', 'this'),
 '2' => array( 'complete', 'sentence')
);
我想成为:

array(
 'the','data','i','need','is','this','complete','sentence'
);
什么是随机的:

  • 子数组元素中的元素数
  • 子数组元素的数目

  • 由于您提出的问题似乎不是递归展平的一般问题,因此在这里给出简单的解决方案作为答案可能是值得的,即使其他SO问题解决了一般情况

    你所需要的只是

    call_user_func_array("array_merge", $a);
    
    要在完整脚本中查看它,请执行以下操作:

    <?php
    $a = array(
        array( 'the',' data', 'i' ),
        array( 'need', 'is', 'this' ),
        array( 'complete', 'sentence' )
    );
    
    echo var_dump($a);
    echo "<br/><br/><br/>";
    $b = call_user_func_array("array_merge", $a);
    echo var_dump($b);
    ?>
    

    可能的重复:解决方案是,处理超过10k个元素(总数)好吗?好问题,@KPL。这里的解决方案考虑了数组嵌套到任意深度的一般情况。如果您只对顶层合并感兴趣,那么您可以编写更高效的内容,而无需使用递归。但是,
    array\u values
    是否不起同样的作用?该函数只生成一个数字索引数组,忽略键。我看不出它对扁平化有什么帮助,但这并不意味着它不能被使用。
    <?php
    $a = array(
        array( 'the','data','i'),
        array( 'need', 'is', 'this'),
        array( 'complete', 'sentence')
    );
    
    $size = 0;
    foreach ($a as $subarray) {
        $size += count($subarray);
    }
    
    $result = new SplFixedArray($size);
    # If you do not have SPL, just use $result = Array(); and write to a high index first (probably)
    
    $i = 0;
    foreach ($a as $subarray) {
        foreach ($subarray as $value) {
            $result[$i++] = $value;
        }
    }
    
    echo var_dump($result);
    ?>