【问题标题】:Implode two-dimensional array in PHPPHP中的内爆二维数组
【发布时间】:2014-11-22 15:11:58
【问题描述】:

我有一个类似的数组:

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() 函数,但它似乎不适用于二维数组。

我该怎么办?

【问题讨论】:

标签: php arrays string implode


【解决方案1】:

或者,您可以先使用容器,合并内容,最后使用扁平容器,然后使用implode()

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

echo implode(', ', $letters);

Sample Output

【讨论】:

    【解决方案2】:

    给定您的主题数组:

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

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

    PHP 5.6.0 及以上版本 使用splat operator

    $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);
    

    【讨论】:

      【解决方案3】:

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

      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
      

      【讨论】:

        猜你喜欢
        • 2022-01-01
        • 2011-07-12
        • 1970-01-01
        • 2021-10-18
        • 2017-01-19
        • 1970-01-01
        • 1970-01-01
        • 2023-03-16
        • 1970-01-01
        相关资源
        最近更新 更多