我在使用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)
)
我如何做到这一点?
答案 0 :(得分:0)
Bassicaly,你想首先将那个丑陋的字符串解析为令牌,然后通过令牌走路并构建一个新的数组。
如果爆炸不够(但现在看起来很好),请尝试preg_match_all。它使用起来有点困难,但功能更强大。
当您将丑陋的字符串作为令牌数组时,只需使用foreach或适合您的任何内容来构建它,并构建您正在寻找的结构。
我认为没有比这更简单的解决方案了。
答案 1 :(得分:0)
我明白了!
$BetterArray = array_chunk($BetterArray, 3);