php - 合并数组元素

标签 php arrays

我想遍历 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;
        }
    }
}

See it in action

不要管静态方法,我必须以某种方式将它们集成到一个充满遗留代码的应用程序中;-)

关于php - 合并数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31668918/

相关文章:

php - 如何显示存储在 MySql 数据库中的 BLOB 图片?

php - 将 JSON 字符串作为字段数据放在 MySQL 上

javascript - 使用 datetimepicker 输入的数据库时间值不正确

php - 如何在 PHP 中相交对象数组?

java - 降低复杂性。查找最接近的纬度和经度对

php - 格式错误的 JSON 字符串需要针对 PHP 进行更正

php - 为什么错误消息没有显示?

php - 使用数组通过 SELECT 和 PHP 进行查询

ruby - 为什么 Ruby 允许我在其自身上推送数组?

c - 最佳实践 : declaring global arrays of fixed length automatically