繁体   English   中英

在PHP中放大二维数组

[英]Implode two-dimensional array in PHP

我有一个像这样的数组:

Array
(
    [0] => Array
        (
            [0] => a
            [1] => b
        )

    [1] => Array
        (
            [0] => c
        )

    [2] => Array
        (
            [0] => d
            [1] => e
            [2] => f
        )

)

我想将数组转换为如下所示的字符串:

$arrtostr = 'a,b,c,d,e,f';

我使用了implode()函数,但它似乎不适用于二维数组。

我该怎么办?

或者,您可以为此首先使用一个容器,合并内容,最后得到一个扁平的容器,然后使用implode()

$letters = array();
foreach ($array as $value) {
    $letters = array_merge($letters, $value);
}

echo implode(', ', $letters);

样本输出

给定您的主题数组:

$subject = array(
    array('a', 'b'),
    array('c'),
    array('d', 'e', 'f'),
);

获得“展平”数组的两种简单方法是:

使用splat运算符的 PHP 5.6.0及更高版本

$flat = array_merge(...$subject);

低于PHP 5.6.0,使用call_user_func_array()

$flat = call_user_func_array('array_merge', $subject);

这两个都给出一个数组,如:

$flat = array('a', 'b', 'c', 'd', 'e', 'f');

然后获取您的字符串,只需内爆:

$string = implode(',', $flat);

您要求一个二维数组,这是一个适用于多维数组的函数。

function implode_r($g, $p) {
    return is_array($p) ?
           implode($g, array_map(__FUNCTION__, array_fill(0, count($p), $g), $p)) : 
           $p;
}

我可以像这样扁平化数组结构:

$multidimensional_array = array(
    'This',
    array(
        'is',
        array(
            'a',
            'test'
        ),
        array(
            'for',
            'multidimensional',
            array(
                'array'
            )
        )
    )
);

echo implode_r(',', $multidimensional_array);

结果是:

This,is,a,test,for, multidimensional,array

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM