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);
?>