0

問題

私は単一の配列から新しい配列を構築しようとしてきLevel 1'sました。最上位、次にLevel 2それぞれの親Level 1's、最後にすべてLevel 3'sの親の内部 に到達する必要がありLevel 2'sます。

親が何であるかの違いを定義する方法は、配列に表示される順序です。

//Array Structure currently
Level 1
Level 2
Level 3
Level 3
Level 3
Level 2
Level 3
Level 3
Level 2

//Desired Array
Level 1
    Level 2
        Level 3
        Level 3
        Level 3
    Level 2
        Level 3
        Level 3
    Level 2

コード 現在、必要なものを取得するためにこれを行っています。

$i = 0;
$singleArray = [];
foreach ($jamie['Row'] as $value){
    $item  = 0;
    $id = $value->Cell->Data;
    $level = substr ($value->Cell[1]->Data, 6, 1);
    $name = $value->Cell[2]->Data;

    /* Start Level One */
    if($level==1){
        $singleArray[$i] = array(
            'key' => $i,
            'id'=>(string) $id,
            'level'=>$level,
            'name'=>(string)$name
        );
    };
    /* End Level One */
    /* Start Level Two */
    if($level==2){
        $reverseArray = array_reverse($singleArray);
        foreach($reverseArray as $key => $value) {
            if($value['level']==1){
                $reverseArray = $value['key'];
                break;
            }
        }

        $tempArray = array(
            'key' => $i,
            'id'=>(string) $id,
            'level'=>$level,
            'name'=>(string)$name
        );

        array_push($singleArray[$reverseArray],$tempArray);
    };
    /* ENdLevel Two */
    $i++;
}

基本的に私がやっていることは、配列を構築し、それがどのレベルに属しているかを確認してから、これまでの配列を取得して、最初のレベル 1 が見つかるまでそれを予約することです。それが配列内のどこにあるかをレベル1でグラブし、それを配列アイテムに貼り付けて、そこに新しい配列を挿入します。これは、レベル 2 からレベル 1 で機能します。そのレベル 3 では、機能することがわかりません :(

配列

 0 => 
  array (
    'key' => 0,
    'id' => '7',
    'level' => '1',
    'name' => 'About Me',
  ),
  1 => 
  array (
    'key' => 1,
    'id' => '78',
    'level' => '2',
    'name' => 'My Conduct at Work',
  ),
  2 => 
  array (
    'key' => 2,
    'id' => '270',
    'level' => '3',
    'name' => 'Dispute Resolution/Grievance',
  ),
  3 => 
  array (
    'key' => 3,
    'id' => 'TBC',
    'level' => '3',
    'name' => 'Learn More',
  ),
  4 => 
  array (
    'key' => 4,
    'id' => '77',
    'level' => '2',
    'name' => 'My Environment, Health & Safety',
  ),
  5 => 
  array (
    'key' => 5,
    'id' => 'TBC',
    'level' => '3',
    'name' => 'Learn More',
  ),
  6 => 
  array (
    'key' => 6,
    'id' => '238',
    'level' => '3',
    'name' => 'Policies and Guidance',
  ),
  7 => 
  array (
    'key' => 7,
    'id' => '79',
    'level' => '2',
    'name' => 'My GSK Employment Journey',
  ),
  8 => 
  array (
    'key' => 8,
    'id' => '274',
    'level' => '3',
    'name' => 'Changes in Role',
  ),
  9 => 
  array (
    'key' => 9,
    'id' => '275',
    'level' => '3',
    'name' => 'Leaving GSK',
  ),
  10 => 
  array (
    'key' => 10,
    'id' => '273',
    'level' => '3',
    'name' => 'My Moves',
  ),
  11 => 
  array (
    'key' => 11,
    'id' => '272',
    'level' => '3',
    'name' => 'Starting at GSK',
  ),
  12 => 
  array (
    'key' => 12,
    'id' => '80',
    'level' => '2',
    'name' => 'My Personal Information',
  ),
  13 => 
  array (
    'key' => 13,
    'id' => 'TBC',
    'level' => '3',
    'name' => 'Learn More',
  ),
  14 => 
  array (
    'key' => 14,
    'id' => '276',
    'level' => '3',
    'name' => 'Manage my Personal Information',
  ),
  15 => 
  array (
    'key' => 15,
    'id' => '76',
    'level' => '2',
    'name' => 'My Talent, Performance & Development',
  ),
  16 => 
  array (
    'key' => 16,
    'id' => '266',
    'level' => '3',
    'name' => 'My Development',
  ),
  17 => 
  array (
    'key' => 17,
    'id' => '268',
    'level' => '3',
    'name' => 'My Learning',
  ),
  18 => 
  array (
    'key' => 18,
    'id' => '267',
    'level' => '3',
    'name' => 'My Performance',
  ),
  19 => 
  array (
    'key' => 19,
    'id' => '75',
    'level' => '2',
    'name' => 'My TotalReward',
  ),
  20 => 
  array (
    'key' => 20,
    'id' => '287',
    'level' => '3',
    'name' => 'Learn More My Benefits',
  ),
  21 => 
  array (
    'key' => 21,
    'id' => '288',
    'level' => '3',
    'name' => 'Learn More My Pay',
  ),
  22 => 
  array (
    'key' => 22,
    'id' => '264',
    'level' => '3',
    'name' => 'My Benefits',
  ),
  23 => 
  array (
    'key' => 23,
    'id' => '263',
    'level' => '3',
    'name' => 'My Pay',
  ),
  24 => 
  array (
    'key' => 24,
    'id' => '265',
    'level' => '3',
    'name' => 'My Recognition',
  ),
  25 => 
  array (
    'key' => 25,
    'id' => '81',
    'level' => '2',
    'name' => 'Time Off, Time & Attendance',
  ),
  26 => 
  array (
    'key' => 26,
    'id' => '281',
    'level' => '3',
    'name' => 'Flexible Working',
  ),
  27 => 
  array (
    'key' => 27,
    'id' => 'TBC',
    'level' => '3',
    'name' => 'Learn More',
  ),
  28 => 
  array (
    'key' => 28,
    'id' => '279',
    'level' => '3',
    'name' => 'Leave of Absence',
  ),
  29 => 
  array (
    'key' => 29,
    'id' => '280',
    'level' => '3',
    'name' => 'Time & Attendance',
  ),
  30 => 
  array (
    'key' => 30,
    'id' => '278',
    'level' => '3',
    'name' => 'Time Off',
  )
4

0 に答える 0