2011-12-21 8 views
0

PHPで多次元配列を並べ替える必要がありますが、私は正しいことができませんし、foreach、whileとwhileループでは苦労しています。多次元php配列の問題を並べ替える

Array 
(
[dimension] => Array 
    (
     [dimension.part] => Array 
      (
       [0] => SimpleXMLElement Object 
        (
         [0] => geheel 
        ) 

       [1] => SimpleXMLElement Object 
        (
         [0] => geheel 
        ) 

      ) 

     [dimension.type] => Array 
      (
       [0] => SimpleXMLElement Object 
        (
         [0] => hoogte 
        ) 

       [1] => SimpleXMLElement Object 
        (
         [0] => breedte 
        ) 

      ) 

     [dimension.value] => Array 
      (
       [0] => SimpleXMLElement Object 
        (
         [0] => 73 
        ) 

       [1] => SimpleXMLElement Object 
        (
         [0] => 84 
        ) 

      ) 

     [dimension.unit] => Array 
      (
       [0] => SimpleXMLElement Object 
        (
         [0] => cm 
        ) 

       [1] => SimpleXMLElement Object 
        (
         [0] => cm 
        ) 

      ) 

    ) 

[material] => Array 
    (
     [material.part] => Array 
      (
       [0] => SimpleXMLElement Object 
        (
         [0] => deelmateriaal 
        ) 

       [1] => SimpleXMLElement Object 
        (
         [0] => deelmateriaal2 
        ) 

      ) 

     [material_type] => Array 
      (
       [0] => SimpleXMLElement Object 
        (
         [0] => typemateriaal 
        ) 

       [1] => SimpleXMLElement Object 
        (
         [0] => typemateriaal2 
        ) 

      ) 

     [material] => Array 
      (
       [0] => SimpleXMLElement Object 
        (
         [0] => materiaal 
        ) 

       [1] => SimpleXMLElement Object 
        (
         [0] => materiaal2 
        ) 

      ) 

     [material.notes] => Array 
      (
       [0] => SimpleXMLElement Object 
        (
         [0] => notemateriaal 
        ) 

       [1] => SimpleXMLElement Object 
        (
         [0] => notemateriaal2 
        ) 

      ) 

    ) 

) 

そして、私はそれを変換する必要があります:

dimensions => Array (1 => array(dimension.part => geheel) 
         => array (dimension.type => hoogte)) 
       ..... 
      => Array (2 => array(dimension.part => ...) 
         => array (dimension.type => ...)) 
       .... 
      .... 
material => Array (1 => ... 
        2 => ... 
      => Array (1 => 
      => 
      .... 

誰もこれまでの良好なアプローチを持っ

これは私が持っているものでしょうか?

おかげで、

ヨリス

+1

多分あなたの闘いの一部を見せてください。 – k102

答えて

0
$new_array = new array(); 
    $count = count($array['dimension']['dimension_part']); 
    for($i=0;$i<$count;$i++) { 
     $new_array[$i]['dimension.part'] = $array['dimension']['dimension.part'][$i][0]; 
     $new_array[$i]['dimension.type'] = $array['dimension']['dimension.type'][$i][0]; 
     $new_array[$i]['dimension.value'] = $array['dimension']['dimension.value'][$i][0]; 
    } 

は、私はあなたがsimplexmlobjectsにアクセスする方法は非常にわからないので、私は配列型を使用しました。すべての次元配列をウォークスルー(およびそれの鍵を格納します。それはどういう

...多分そのような[$i] -> 0

+0

'$ new_array [$ i]'の3つの割り当てが互いに上書きされませんか? – Andy

1
foreach($arr['dimension'] as $keyType => $type) { 
    foreach($type as $key => $value) { 
     $aNewArray[$key][$keyType] = $value; 
    } 
} 

何かに変更し...そして、あなたのニーズに合わせて、もう少しそれを処理$ keyTypeの中で)、そしてすべての項目を歩き、それをあなたが望む方法で新しい配列に追加します。それは、すべてのタイプがその下に同じ量のアイテムを持っていると仮定します。

関連する問題