Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在循环中合并数组_Php_Arrays - Fatal编程技术网

Php 在循环中合并数组

Php 在循环中合并数组,php,arrays,Php,Arrays,我正在使用array\u merge将三维数组合并为二维数组 当我将五个键合并到一个数组中时,我会得到所需的结果 $result = array_merge($records[0], $records[1], $records[2], $records[3], $records[4]); 但是,我可能有2把钥匙,或者10把。我不能有这样的静态代码 我当然可以使用下面的代码来获取有多少个键: $count = count($records); 但是我如何使用它来构建一个数组合并,以便它包含所有

我正在使用array\u merge将三维数组合并为二维数组

当我将五个键合并到一个数组中时,我会得到所需的结果

$result = array_merge($records[0], $records[1], $records[2], $records[3], $records[4]);
但是,我可能有2把钥匙,或者10把。我不能有这样的静态代码

我当然可以使用下面的代码来获取有多少个键:

$count = count($records);
但是我如何使用它来构建一个数组合并,以便它包含所有适当的键呢?ie:如果有四个,很好,它将生成与上面相同的代码,但是如果有三个,它将只执行0、1、2

如果有3个键:

$result = array_merge($records[0], $records[1], $records[2]);
如果有8个键:

$result = array_merge($records[0], $records[1], $records[2], $records[3], $records[4], $records[5], $records[6], $records[7]);
提前谢谢你提出这个愚蠢的问题。我知道这很简单

/**
 * Convert a multi-dimensional array into a single-dimensional array.
 * @author Sean Cannon, LitmusBox.com | seanc@litmusbox.com
 * @param  array $array The multi-dimensional array.
 * @return array
 */
function array_flatten($array) { 
  if (!is_array($array)) { 
    return false; 
  } 
  $result = array(); 
  foreach ($array as $key => $value) { 
    if (is_array($value)) { 
      $result = array_merge($result, array_flatten($value)); 
    } else { 
      $result[$key] = $value; 
    } 
  } 
  return $result; 
}
这个函数应该对您有所帮助。它将多维数组转换为一维数组


资料来源:

这个函数应该对您有所帮助。它将多维数组转换为一维数组


资料来源:


$records
的值是多少?
$records
的值是多少?
$result = [];
foreach ($records as $record) {
    $result = array_merge($result, $record);
}