我想遍历 3 个数组以创建 1 个包含所有 3 个值的单个数组。
示例和结果见下文。
输入:
array( '0' => array( '0' => array('a'), '1' => array('b') ), '1' => array( '0' => array('c'), '1' => array('d'), '2' => array('e') ), '2' => array( '0' => array('f') ), )
结果:
array( '0' => 'acf', '1' => 'adf', '2' => 'aef', '3' => 'bcf', '4' => 'bdf', '5' => 'bef' )
最佳答案
有趣的是,几年前我遇到了同样的问题,所以这是我后来想出的解决方案。
public static function combineElementsSuccessive($arry)
{
$result = [];
if (empty($arry) || !is_array($arry)) {
return result;
}
self::concatAndPush('', $result, $arry, 0);
return $result;
}
private static function concatAndPush($str, &$res_arry, $arry, $index)
{
foreach ($arry[$index] as $key => $val) {
$mod_str = $str . $val;
if (isset($arry[$index+1])) {
self::concatAndPush($mod_str, $res_arry, $arry, $index+1);
}
else {
$res_arry[] = $mod_str;
}
}
}
不要管静态方法,我必须以某种方式将它们集成到一个充满遗留代码的应用程序中;-)
关于php - 合并数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31668918/