2011-01-24 4 views
1

나는 배열이 같은 데이터가 포함되어있어 :기존 배열을 새로운 배열로 변환 하시겠습니까? 내 조작에

$A = Array 
    (
     [0] => 0302 sa 
      [1] => 0602 sdsa 
      [2] => 0602 sada 
      [3] => 0802 sadasdasd 
     [4] => 0302 sada 
      [5] => 0602 saa 
      [6] => 0602 sdad 
      [7] => 0802 sds 
     [8] => 0302 sda 
      [9] => 0602 sdada 
      [10] => 0602 sada 
      [11] => 0802 sdada 
     [12] => 0302 sda 
      [13] => 0602 sdads 
      [14] => 0602 saddas 
      [15] => 0802 sadas 
    ) 

출력이 새로운 배열

$B = Array 
     (//03 
     [0] => array( 
        [0] => 0602 sdsa,//06 
        [1] => 0602 sada //06 
     ) 
     //03 
     [1] => array(
       [0] => 0602 saa,//06 
       [1] => 0602 sdad //06 
       ) 
       //03 
     [2] => array(
       [0] => 0602 sdada,//06 
       [1] => 0602 sada //06 
     ) 
      //03 
     [3] =>array(
       [0] => 0602 sdads,//06 
       [1] => 0602 saddas//06 
     ) 
    ) 

시도를 할 것이다 나에게이 문제를 해결하는 데 도움이 될 수 있습니다

function TODO($A){ 
    $B = array(); 
    foreach ($A as $key=>$line){ 
if(substr($line,0,2)=="03"){ 
    $B[] = ??? 
    } 
} 

?

+0

그래서 항목에 "03 ..."값이있을 때마다 새 하위 배열을 만들겠습니까? – Sampson

+0

예, 03이 주 배열이되고 06은 03의 요소가됩니다 – kn3l

+0

여기에서 데이터 조작의 논리는 무엇입니까? x = xxx이면 x2 = xxx2이면 y에 대입하고 y2에 대입하면 ... 우리에게 말해 줄 수 있습니까? – Andreyco

답변

1
 
$B = array(); 
foreach($a as $line) { 
    if(substr($line,0,2)=="03"){ 
    if(isset($tmpArray)) $B[] = $tmpArray; 
    $tmpArray = array(); 
    } else { 
    if(!isset($tmpArray) continue; 
    $tmpArray[] = $line; 
    } 
} 
if(isset($tmpArray)) $B[] = $tmpArray; 

그냥 간단한 아이디어

+0

이렇게하면 '0802'값이있는 행이 추가됩니다. – codaddict

2

시도 :-) :

$B = array(); 
$flag = 0; 
foreach ($A as $key=>$line){ 
     if($flag != 0) { 
       if($flag == 1) { 
         $temp = array(); 
         $temp[0] = $line; 
         $flag++; 
       } else { 
         $temp[1] = $line; 
         $B[] = $temp; 
         $flag = 0; 
       } 
     } 
     if(substr($line,0,2)=="03"){ 
       $flag = 1; 
     } 
} 

Ideone Link

참고 : 나는 즉시 03을 따릅니다 두 06 년대를 가정하고있다.

+0

15 => '0602 Added1', 16 => '0602 Added2'문제가 있습니다. http://www.ideone.com/homdI에서 요소가 추가되었습니다. – kn3l

+0

@python : 귀하의 의도는 분명하지 않습니다. '06 '다음에'06 '을 몇 개 추가 하든지 모두 추가 하시겠습니까? – codaddict

+0

아무쪼록 잘 부탁드립니다. – kn3l

관련 문제