0

我在返回一个包含需要拆分的单个大量元素的数组的 API 时遇到了很多麻烦。事实证明,这是一个难以破解的难题。

 $CrappyArray = array([TheSingleElement]=>header1-header2-header3-value1.1-value1.2-value1.3-value2.1-value2.2-value2.3);

我试过只使用常规爆炸。

$BetterArray= explode('-', $CrappyArray['TheSingleElement']);
print_r($BetterArray);

不幸的是,这只是返回:

Array ([0]=>header1 [1]=>header2 [2]=>header3 [3]value1.1 [4]value1.2 [5]value1.3 [6]value2.1 [7]value2.2 [8]value2.3)

这再好不过了。我需要的是:

Array (
[0]=>Array ([0]=>header1 [1]=>header2 [2]=>header3) 
[1]=>Array ([0]=>value1.1 [1]value2.2 [2]value2.3) 
[2]=>Array ([0]=>value2.1 [1]=>value2.2 [2]=>value2.3)
)

我该如何做到这一点?

4

2 回答 2

0

基本上,您想先将那个丑陋的字符串解析为标记,然后遍历标记并构建一个新数组。

如果explode 还不够(但现在看起来还不错),请尝试preg_match_all。它使用起来有点困难,但功能更强大。

当您有丑陋的字符串作为标记数组时,只需使用 foreach 或任何适合您的方式遍历它并构建您正在寻找的结构。

我认为没有比这更简单的解决方案了。

于 2013-01-30T03:09:15.430 回答
0

我想到了!

$BetterArray = array_chunk($BetterArray, 3);
于 2013-01-30T03:13:37.570 回答