2016-10-13 5 views
0

nach der Verarbeitung einer CSV-Datei, die ich mit einer Datenstruktur am Ende wie folgtBeziehen eindeutige Werte mit verschiedenen Schlüsseln

Array 
(
    [0] => Array 
     (
      [Supplier Name] => John Lewis 
      [Supplier Name2] => Fenwicks 
      //other data 
     ) 
    //Other elements 
) 

Was ich versuche ist alle eindeutigen sluppliers zu erhalten. Das Problem besteht darin, dass, wenn es mehr als einen Lieferanten in dem Array gibt, eine Nummer an das Ende davon hinzugefügt wird, z. Name des Lieferanten2. Was ich im Moment habe, ist dies.

$suppliers = array(); 
foreach($csvArray as $k => $row) { 
    foreach($row as $key => $value) { 
     $suppliers[] = $csvArray[$k]['Supplier Name']; 
    } 
} 
$uniqueSuppliers = array_unique($suppliers); 

Nun werden alle eindeutigen Werte zurückgegeben, bei denen der Schlüssel Lieferantenname ist. Dies gilt jedoch nicht für den Lieferantennamen2, 3, 4 usw. Kann ich irgendetwas, das mit dem Lieferantennamen beginnt, in diese Suche aufnehmen?

Dank

+0

versuchen, diese $ Lieferanten [] = $ value statt dieser $ Lieferanten [] = $ csvArray [$ beginnt k] ['Lieferantenname']; – JYoThI

Antwort

1

Sie haben den Schlüssel in $key, nur testen, ob es mit Supplier Name

foreach ($csvArray as $row) { 
    foreach ($row as $key => $value) { 
     if (strpos($key, 'Supplier Name') === 0) { 
      $suppliers[] = $value; 
     } 
    } 
} 
+0

Wenn Sie strpos verwenden, stellen Sie sicher, dass Sie strict comparison '===' verwenden, da 'false == 0' in php. – winkbrace

Verwandte Themen