2016-07-03 9 views
-1

Lassen Sie uns sagen, dass ich ein Medikament Datenbank mit diesem Format haben:kombinieren Einheiten mit Stärken mit PHP

----------------------------------------------- 
| Medication Name | Strength | Unit  | 
----------------------------------------------- 
| NORCO   | 5;325 | mg/1;mg/1 | 
| Amoxicillin  |  500 |  mg/1  | 
| Augmentin  | 250;62.5 |mg/5mL; mg/5mL| 
----------------------------------------------- 

Wie kann ich Daten auf diese Weise angezeigt werden mit PHP:

NORCO 5mg/325mg 
Amoxicillin 500mg 
Augmentin 250mg/5mL 62.5mg/5mL 

Entfernen /1 aus Die Einheitenspalte ist einfach mit str_replace, aber wie kann ich Einheiten auf Stärken mit einem Semikolon verteilen, das sie trennt?

+0

Bitte zeigen Sie, was Sie bisher versucht haben. –

+1

Auch wenn Ihnen hier jemand eine Frage stellt, sollten Sie Ihre Datenbank wirklich normalisieren und diese semikolongetrennten Listen entfernen. –

+3

vertrauen Sie mir, ich hätte das getan .. aber die Regierung nicht. Die Quelle der Datenbank stammt von der Food and Drug Administration (FDA). Quelle: http://www.fda.gov/Drugs/InformationOnDrugs/ucm142438.htm – shnisaka

Antwort

1

Sie können php explode Funktion verwenden. Es kann andere bessere Lösungen geben, für Anfänger können Sie unter dem Code versuchen.

// Considering this is your data from database 
$data = array(
      array(
       'name' => "NORCO", 
       'strength' => "5;325", 
       'unit' => "mg/1;mg/1" 
      ), 
      array(
       'name' => "Amoxicillin", 
       'strength' => "500", 
       'unit' => "mg/1" 
      ), 
      array(
       'name' => "Augmentin", 
       'strength' => "250;62.5", 
       'unit' => "mg/5mL; mg/5mL" 
      ), 
     ); 

// Looping through data 
foreach ($data as $row) { 
    $strength = explode(';', $row['strength']); 
    $unit = explode(';', $row['unit']); 
    $combine = combineStrengthUnit($strength, $unit); 
    echo $row['name'] . " " . $combine ; 
    echo "<br/>"; 
} 

// return combined Strength and Units 
function combineStrengthUnit($strength, $unit) 
{ 
    $combine_result = ''; 
    foreach ($strength as $key => $value) { 
     $combine_result .= $value . trim(str_replace('/1', '', $unit[$key])) . " "; //trimming the spaces of unit 
    } 
    return $combine_result; 
} 

Ausgang:

NORCO 5mg 325mg 
Amoxicillin 500mg 
Augmentin 250mg/5mL 62.5mg/5mL 
Verwandte Themen