2017-11-08 3 views
0

Mein Problem mit bekommen war außerhalb eines foreachWie ein Array mit bestimmten Index außerhalb des foreach Php

$jobCard

$ Jobcard enthält ein assoziatives in meinem Fall ich das bekommen die Array employeeIds in einem Array zu erhalten employee_id im Array

$employeeId = array(); 

foreach ($jobCards as $jobCard) { 
    $employeeId[] = $jobCard['employee_id']; 
} 

$employees = Employee::LoadArray($employeeId); 

foreach ($employees as $employeeID => $Employee) { 
    $employeeName[$employeeID] = $Employee->getName(); 
    Console::Log('name', $employeeName); 
} 

foreach ($jobCards as $jobCard) { 
    Console::Log('$employeeName', $employeeName); 
    $notes[] = $employeeName[$employeeID] . " \n" .$jobCard['description_notes']; 
} 

$detail['notes'] = implode("\n", $notes); 
Console::Log('display', $detail); 
+1

sicher über diesen Teil 'employeeId = array();' fehlt die '$' – ArtisticPhoenix

+1

Fest !, entziffern können Sie die Frage bearbeiten und es zu versuchen, um es verständlicher? – Zain

+0

Es tut mir leid, dass ich $ verpasst habe, wenn es an meinem Ende kopiert wurde. Danke für die Antwort. Mein Problem war, $ employeeId [] -Array außerhalb der Foreach – drakogemini2

Antwort

0

Mein Verständnis Ihrer Frage ist, dass Sie mit der Beschreibung Notizen kombiniert für ids Mitarbeiternamen möchten. Wenn ja, dann ist Ihre Iterationslogik ein wenig durcheinander.

Ein einfacher Weg ist:

  1. alle Mitarbeiter bekommen
  2. Iterierte $jobCards und die Notiz kompilieren, während die Mitarbeiternamen im Array Mitarbeiter

Eg aufzublicken:

<?php 
// get all employees for the collected ids 
$employees = Employee::LoadArray(array_column($jobCards, 'employee_id')); 

// map job cards to notes 
$notes = array_map(function ($jobCard) use($employees) { 
    return sprintf(
     "%s\n%s", 
     // access the employee name directly 
     $employees[$jobCard['employee_id']]->getName(), 
     $jobCard['description_notes'] 
    ); 
}, $jobCards); 

$detail['notes'] = implode("\n", $notes); 

Funktionsreferenz:

array_column, array_map

+0

Dank bro, Es funktioniert jetzt gut. Es dauerte stundenlang Kopfschmerzen. Danke an diejenigen, die geantwortet haben und an diese neue PHP-Funktion "array_map", die ich gerade kannte. – drakogemini2

Verwandte Themen