2011-01-26 12 views
0

私は同じレベルの配列を持っています。アレイから複数のアレイを作成するにはどうすればよいですか?

$original = Array(
     0=>"03ssss",//substr("03ssss",0,2)="03" => parent index 

      1=>"04aaaa", 
      2=>"05absd", 
      3=>"07sdsa", 
      4=>"08sdsd", 

     5=>"03tttt", //substr("03tttt",0,2)="03" => parent index 

      6=>"04xxxx, //substr("03xxxx",0,2)="04" => child index 
      7=>"05sdds", 
      8=>"07sdfd", 
      9=>"08sdff", 
      10=>"04xsax", //substr("03xxxx",0,2)="04" => child index 
      11=>"05sdfs", 
      12=>"07sdfds", 
      13=>"08asap", 
    ) 

どのように$originalから複数の配列にこのようなものを作成できますか?

$move_level = Array(
0=>array(0=>"04aaaa 05absd 07sdsa 08sdsd"), 
1=>array(0=>"04xxxx 05sdds 07sdfd 08sdff", 
      1=>"04xsax 05sdfs 07sdfds 08asap") 
); 

おかげ

+1

あなたの '$ move_level'の例では、意味がありません。 '$ original'から4つの同じ要素を新しい配列の複数の別々の配列にコピーしたいのですか? –

+2

新しいアレイを作成するルールは何ですか?先頭に '03'を付けた要素を削除し、残りの要素を4つのブロックにまとめるだけですか? –

+1

あなたの例が何を意味しているかは完全には分かりません。特に元の配列の重複した要素が原因です。 – Matchu

答えて

1

は、これは '03' で始まる各要素のサブアレイに$元の配列を分割:

$move_level = array(); 
$ary = array(); 
foreach($original as $value) { 
    if (strpos($value, '03') === 0) { 
     $move_level[] = $ary; 
     $ary = array(); 
    } else { 
     $ary[] = $value; 
    } 
} 
$move_level[] = $ary; 
+0

@ user576875私は "04xxxx 05xxxx 07xxxx 08xxxx"に参加する必要があります。私の出力例と同じです。しかしあなたとの違いはありますか? – kn3l

関連する問題