PHP将具有单个质量元素的数组转换为多维数组

时间:2013-01-30 02:59:25

标签: php arrays multidimensional-array

我在使用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)
)

我如何做到这一点?

2 个答案:

答案 0 :(得分:0)

Bassicaly,你想首先将那个丑陋的字符串解析为令牌,然后通过令牌走路并构建一个新的数组。

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

当您将丑陋的字符串作为令牌数组时,只需使用foreach或适合您的任何内容来构建它,并构建您正在寻找的结构。

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

答案 1 :(得分:0)

我明白了!

$BetterArray = array_chunk($BetterArray, 3);