PHP - 将字符串拆分为多维数组的无循环方式

Rob*_*cks 0 php arrays string scripting

如何在没有循环的情况下将字符串拆分为PHP中的多维数组?

我的字符串是格式 "A,5|B,3|C,8"

Pas*_*TIN 7

如果没有实际做循环部分,基于array_map+的东西explode应该可以做到; 例如,考虑到您使用的是PHP 5.3:

$str = "A,5|B,3|C,8";

$a = array_map(
    function ($substr) {
        return explode(',', $substr);
    }, 
    explode('|', $str)
);
var_dump($a);
Run Code Online (Sandbox Code Playgroud)

会得到你:

array
  0 => 
    array
      0 => string 'A' (length=1)
      1 => string '5' (length=1)
  1 => 
    array
      0 => string 'B' (length=1)
      1 => string '3' (length=1)
  2 => 
    array
      0 => string 'C' (length=1)
      1 => string '8' (length=1)
Run Code Online (Sandbox Code Playgroud)

当然,这部分代码可以重写为不使用lambda函数,并且使用PHP <5.3 - 但不是很有趣^^


尽管如此,我假设array_map将遍历由explode... 返回的数组的每个元素.因此,即使循环不在您的代码中,仍然会有一个......