簡體   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