0
我有一个数据阵列(阵列的所有值A是string
): 这里是数据输入(http://pastebin.com/H8wv9aJU)将数组元素组合到2个dim数组中?
$A = Array
0=>(
[0] => "03"//main
[1] => "04"//sub
[2] => "05"
[3] => "07"
[4] => "03" //main
[5] => "04"//sub
[6] => "05"
[7] => "06"
[8] => "07"
[9] => "04"//sub
[10] => "05"
[11] => "06"
[12] => "07"
[13] => "04"//sub
[14] => "05"
[15] => "07"
[16] => "03" //main
[17] => "04"//sub
[18] => "05"
[19] => "06"
[20] => "07"
[21] => "04"//sub
[22] => "05"
[23] => "06"
[24] => "07"
[25] => "04"//sub
[26] => "05"
[27] => "07"
);
预期的结果(04和07之间的一些元件可以被缺失):
Array
(
[0] => Array // "03"
(
[0] => "030405 07" //because missing 06 see here 2 space
)
[1] => Array // "03"
(
[0] => "0304050607" //concatenate it all together
[1] => "0304050607"//concatenate it all together
[2] => "030405 07"//because missing 06see here 2 space
)
[2] => Array // "03"
(
[0] => "0304050607" //concatenate it all together
[1] => "0304050607" //concatenate it all together
[2] => "030405 07"//because missing 06, see here 2 space
)
)
我尝试:
$r = -1;
$organized_array = array();//array expected result.
foreach($A as $key=>$rec) {
if(substr($rec,0,2) == "03") {
// CHANGE 1
$save = $rec;// saved "03" yo put in child too.
++$r;//inc parent => $r became 0
$j = 0; // child
$organized_array[$r][$j] = str_replace(array("\r", "\n"), "",$rec);
}
else {
//I STUCKED HERE FOR GETTING THE EXPECTED RESULT
if (($j % 3) > 0) $rec = str_replace(array("\r", "\n"), "",$rec);
// CHANGE 2
else if ($j && $j % 3 == 0) $rec = str_replace(array("\r", "\n"), "",$save.$rec);
$organized_array[$r][floor($j/3)] .= str_replace(array("\r", "\n"), "", $rec);
++$j;//increment child
}
}
有谁我是怎么了?
对不起,你给出的两个数据集不是很有帮助(他们有很多相同的数字,很难说出会发生什么),你能举出另一个例子吗?数字的另一边不要加号? $ k ++不是++ $ k。 – Ben 2011-03-29 08:05:39
现在编辑也许更清楚了,谢谢 – kn3l 2011-03-29 08:08:40
和值只能是03,04,05,06和07? – Ben 2011-03-29 08:14:56