在循环中合并数组

时间:2017-11-09 23:19:04

标签: php arrays

我使用array_merge将三维数组合并为二维数组。

当我有五个键合并到一个数组中时,我得到了我需要的结果。

$result = array_merge($records[0], $records[1], $records[2], $records[3], $records[4]);

但是,我可能有2个键,或者10.我不能有这样的静态代码。

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

$count = count($records);

但是,我如何使用它来构建一个数组合并,以便它包含所有适当的键?即:如果有四个,那么它会生成与上面相同的代码,但是如果有3则那么它将会执行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]);

提前感谢这个愚蠢的问题。我知道这很简单!!

2 个答案:

答案 0 :(得分:0)

/**
 * 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; 
}

这个功能可以帮到你。它将多维数组转换为一维数组。

  

来源:https://gist.github.com/SeanCannon/6585889

答案 1 :(得分:0)

rowproxy