Повторяющиеся объекты в массиве php - PullRequest
0 голосов
/ 22 июня 2019

Я пытаюсь получить конкретный вывод для создаваемого API, однако для одного из извлекаемых соединений требуется новое назначенное ему значение ключа, поэтому я помещаю его в цикл for. Однако из-за того, что выходные данные присваиваются новому массиву, значения повторяются, я попытался указать, что могут быть назначены только значения, не входящие в массив, но это все равно не решает мою проблему. Если бы кто-нибудь мог помочь, было бы здорово.

 public function showAllTeamInformation()
{
    // get the team id 
    $teamid = Teams::all()->pluck('team_id')->toArray();
    // get all the team info 
    $teaminfomratin = Teams::all()->toArray();
    // the complete loop by team id nu,ber
    foreach ($teamid as $number) {
     // get the skill name and scor  
    $skills[] = Teams::find($number)->skills->pluck('skill_name', 
     'score')->toArray();
    // get the hobbies 
    $hobbies[] = Teams::find($number)->hobbies->pluck('hobby');
    $final =array();
    // for loop to assignemtn new key value 
    foreach($skills as $row => $value){
        foreach($value as $rows => $values){
            if (!in_array($values, $final))
             {
              $final['skills'][] =  array('name'=>$values , 'skill' => $rows);
             }
         }
     }  

    foreach($hobbies as $row => $value){
        $newArrays['hobbies'] =  $value;
    }
    // merging them all together
   $output_array[$number-1] = array_merge($teaminfomratin[$number- 
    1], $final, $newArrays);

}


    return response()->json($output_array);

}

Токовый выход

            [
            {
            "team_id": 1,
            "first_name": "jack",
            "surname": "churchill",
            "nickname": "jacko",
            "role": "developer",
            "image_url": "jack.jpg",
            "team": "production",
            "company": "chelsea apps",
            "created_at": null,
            "updated_at": null,
            "skills": [
            {
            "name": "mysql",
            "skill": 4
            },
            {
            "name": "php",
            "skill": 5
            }
            ],
            "hobbies": [
            "running",
            "more"
            ]
            },
            [
            {
            "team_id": 1,
            "first_name": "jack",
            "surname": "churchill",
            "nickname": "jacko",
            "role": "developer",
            "image_url": "jack.jpg",
            "team": "production",
            "company": "chelsea apps",
            "created_at": null,
            "updated_at": null,
            "skills": [
            {
            "name": "mysql",
            "skill": 4
            },
            {
            "name": "php",
            "skill": 5
            }
            ],
            "hobbies": [
            "running",
            "more"
            ]
            },
            {
            "team_id": 2,
            "first_name": "marco",
            "surname": "",
            "nickname": "marco",
            "role": "frontend",
            "image_url": "marco.jpg",
            "team": "dev",
            "company": "chelseaapps",
            "created_at": null,
            "updated_at": null,
            "skills": [
            {
            "name": "mysql",
            "skill": 4
            },
            {
            "name": "php",
            "skill": 5
            },
            {
            "name": "sass",
            "skill": 4
            }
            ],
            "hobbies": [
            "running",
            "netflix"
            ]
            },
            {
            "team_id": 3,
            "first_name": "harry",
            "surname": "smith",
            "nickname": "harry ",
            "role": "marketing",
            "image_url": "harry.jpg",
            "team": "marketing",
            "company": "chelsea apps",
            "created_at": null,
            "updated_at": null,
            "skills": [
            {
            "name": "mysql",
            "skill": 4
            },
            {
            "name": "php",
            "skill": 5
            },
            {
            "name": "sass",
            "skill": 4
            },
            {
            "name": "being cool",
            "skill": 5
            }
            ],
            "hobbies": [
            "going out"
            ]
            }
            ]

Как видите, навыки копируются в следующий объект, который не является правильным.

Правильный вывод для команды 2 и 3, например, будет

            [
            {
            "team_id": 1,
            "first_name": "jack",
            "surname": "churchill",
            "nickname": "jacko",
            "role": "developer",
            "image_url": "jack.jpg",
            "team": "production",
            "company": "chelsea apps",
            "created_at": null,
            "updated_at": null,
            "skills": [
            {
            "name": "mysql",
            "skill": 4
            },
            {
            "name": "php",
            "skill": 5
            }
            ],
            "hobbies": [
            "running",
            "more"
            ]
            },
            {
            "team_id": 2,
            "first_name": "marco",
            "surname": "",
            "nickname": "marco",
            "role": "frontend",
            "image_url": "marco.jpg",
            "team": "dev",
            "company": "chelseaapps",
            "created_at": null,
            "updated_at": null,
            "skills": [
            {
            "name": "sass",
            "skill": 4
            }
            ],
            "hobbies": [
            "running",
            "netflix"
            ]
            },
            {
            "team_id": 3,
            "first_name": "harry",
            "surname": "smith",
            "nickname": "harry ",
            "role": "marketing",
            "image_url": "harry.jpg",
            "team": "marketing",
            "company": "chelsea apps",
            "created_at": null,
            "updated_at": null,
            "skills": [
            {
            "name": "being cool",
            "skill": 5
            }
            ],
            "hobbies": [
            "going out"
            ]
            }
            ]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...