2016-06-15 3 views
0

私は、次のしているforeachループ:今のところビルドツリー

- section 
    _ category 
     - items 
... 

私はこのように行った:

$tmp = []; 
$newarray = []; 
foreach($mydata as $data){ 
    $section = $data->section; 
    $category = $data->category; 
    $item = $data->item; 
    if(!in_array($category, $temp)){ 
     $newarray[$section][] = $category; 
    } 
} 

// output: 
Array(
    [SectionName_one] => Array(
     [0] => categoryOneName_one 
     [1] => categoryOneName_two 
     [2] => categoryOneName_three 
    ) 
    [SectionName_two] => Array(
     [0] => categoryTwoName_one 
     [1] => categoryTwoName_two 
     [2] => categoryTwoName_three 
    ) 
    ... 
) 
私はこのようなツリーを構築したい

foreach($mydata as $data){ 
    $section = $data->section; 
    $category = $data->category; 
    $item = $data->item; 
} 

そして、私はここでブロックされています、私はどのように各カテゴリの項目の要素を挿入するのか分からない、あなたがhavaのアイデアのおかげで私を助ける:)

はPHPが存在しない配列のキーと非常に寛容である

+1

'$ newarray [$ section] [$ category] ​​[] = $ item'?あなたが何をしているのかは100%確かではありません。 –

+1

@JonStirlingが言っていることに加えて、 'foreach'ループ' $ data-> category [$ data-> category] ​​[] = $ data-> item; ' –

答えて

1
foreach ($mydata as $data){ 
    $newarray[$data->section][$data->category][]= $data->item; 
} 

ありがとうございます。

+0

、awuch、あなたの実用的なソリューションのおかげで、それは私が必要とするように完全に動作します。 – user44321