内置具有不同分隔符的多维数组?

时间:2016-10-19 20:02:17

标签: php arrays multidimensional-array implode

我希望将我的数组内爆成一个如下所示的字符串:

1,A,V,V | 2,B,V,V | 3,C,V,V | 4,d,V,V'| 5,d,V,V'

这是我的阵列:

array (size=5)
  0 => 
    array (size=4)
      0 => string '1' (length=1)
      1 => string 'a' (length=1)
      2 => string 'v' (length=1)
      3 => string 'v' (length=1)
  1 => 
    array (size=4)
      0 => string '2' (length=1)
      1 => string 'b' (length=1)
      2 => string 'v' (length=1)
      3 => string 'v' (length=1)
  2 => 
    array (size=4)
      0 => string '3' (length=1)
      1 => string 'c' (length=1)
      2 => string 'v' (length=1)
      3 => string 'v' (length=1)
  3 => 
    array (size=4)
      0 => string '4' (length=1)
      1 => string 'd' (length=1)
      2 => string 'v' (length=1)
      3 => string 'v' (length=1)
  4 => 
    array (size=4)
      0 => string '5' (length=1)
      1 => string 'd' (length=1)
      2 => string 'v' (length=1)
      3 => string 'v' (length=1)

非常感谢任何帮助。

感谢。

1 个答案:

答案 0 :(得分:1)

如果您从字符串数组开始,如下所示:

$strings = ['1,a,v,v', '2,b,v,v', '3,c,v,v', '4,d,v,v', '5,d,v,v'];

这很简单:

$result = implode('|', $strings);

您可能已经知道如何做到这一点。所以问题是如何获得 arrays

这个数组
$arrays = [
    ['1','a','v','v'],
    ['2','b','v','v'],
    ['3','c','v','v'],
    ['4','d','v','v'],
    ['5','d','v','v']
];

采用与$strings相同的格式。

幸运的是,这也很容易。只是在循环中做同样的事情。

foreach ($arrays as $array) {
    // implode each item and add the result to a new array
    $strings[] = implode(',', $array);
}

也可以使用array_map功能完成。

$strings = array_map(function($array) {
    return implode(',', $array);
}, $arrays);

对于像这样基本的东西,你做哪种方式并不重要。