Generieren einer HTML-Tabelle aus einem Array basierend auf dynamischen Schlüsselwerten

Ich versuche, eine Berichtstabelle für Woocommerce-Aufträge zu erstellen, die auf Meta-Feldern basieren, die sich von Produkt zu Produkt ändern. Diese benutzerdefinierten Auftragsfelder werden als Zeilen in der Tabelle woocommerce_order_items als benannter Schlüssel und entsprechender Wert jeweils in einer eigenen Zeile gespeichert.

Dieser Bericht soll jedes geeignete benutzerdefinierte Feld nach Zeilen mit dem Meta-Schlüssel als Spaltenüberschrift anzeigen.

Ich bin in der Lage, das folgende Array von der db zu bekommen, aber ich kämpfe mit dem Formatieren der Ergebnisse in eine Tabelle mit dem Meta-Schlüssel, der als Spaltenüberschrift verwendet wird, und jedem Metawert, der in der Tabelle entsprechend aufgeführt wird.

Hier ist ein aktuelles Beispiel-Array:

 Array
 (
     [0] => Array
         (
             [meta_key] => cpf_erster_name
             [Metawert] => John
         )

     [1] => Array
         (
             [meta_key] => cpf_erster_name
             [Metawert] => James
         )

     [2] => Array
         (
             [meta_key] => cpf_erster_name
             [Metawert] => Jane
         )

     [3] => Array
         (
             [meta_key] => cpf_gender
             [meta_value] => Männlich
         )

     [4] => Array
         (
             [meta_key] => cpf_gender
             [meta_value] => Männlich
         )

     [5] => Array
         (
             [meta_key] => cpf_gender
             [meta_wert] => Weiblich
         )

     [6] => Array
         (
             [Meta_Key] => Cpf_Last_Name
             [Metawert] => Doe
         )

     [7] => Array
         (
             [Meta_Key] => Cpf_Last_Name
             [Metawert] => Doe
         )

     [8] => Array
         (
             [Meta_Key] => Cpf_Last_Name
             [Metawert] => Doe
         )

 ) 

Welche möchte ich formatieren als:

  |  cpf_first_name |  cpf_last_name |  cpf_gender |
 | ------------------------------------------------- - |
 |  John  Doe |  Männlich |
 |  James |  Doe |  Männlich |
 |  Jane |  Doe |  Weiblich |
 | __________________ | _________________ | ______________ | 

Solutions Collecting From Web of "Generieren einer HTML-Tabelle aus einem Array basierend auf dynamischen Schlüsselwerten"

Hier ist die getestete Lösung-

// Your sample array $sample_array = array( 0 => array( 'meta_key' => 'cpf_first_name', 'meta_value' => 'John' ), 1 => array( 'meta_key' => 'cpf_first_name', 'meta_value' => 'James' ), 2 => array( 'meta_key' => 'cpf_first_name', 'meta_value' => 'Jane' ), 3 => array( 'meta_key' => 'cpf_gender', 'meta_value' => 'Male' ), 4 => array( 'meta_key' => 'cpf_gender', 'meta_value' => 'Male' ), 5 => array( 'meta_key' => 'cpf_gender', 'meta_value' => 'Female' ), 6 => array( 'meta_key' => 'cpf_last_name', 'meta_value' => 'Doe' ), 7 => array( 'meta_key' => 'cpf_last_name', 'meta_value' => 'Doe' ), 8 => array( 'meta_key' => 'cpf_last_name', 'meta_value' => 'Doe' ), ); // Here starts the real code $headers = []; $bodys = []; foreach ( $sample_array as $array ) { if ( $array['meta_key'] == 'cpf_first_name' ){ $bodys['cpf_first_name'][] = $array['meta_value']; if ( !in_array('cpf_first_name', $headers) ) $headers[] = 'cpf_first_name'; } elseif ( $array['meta_key'] == 'cpf_last_name' ) { $bodys['cpf_last_name'][] = $array['meta_value']; if ( !in_array('cpf_last_name', $headers) ) $headers[] = 'cpf_last_name'; } else { $bodys['cpf_gender'][] = $array['meta_value']; if ( !in_array('cpf_gender', $headers) ) $headers[] = 'cpf_gender'; } } $body_cpf_gender = $bodys['cpf_gender']; unset($bodys['cpf_gender']); $bodys['cpf_gender'] = $body_cpf_gender; $headers= array_diff($headers, array('cpf_gender')); array_push($headers, 'cpf_gender'); echo ''; ?>  < ?php foreach ( $headers as $header ) { echo ' < ?php for ( $i = 0; $i < count($bodys['cpf_gender']); $i++) { ?>  < ?php foreach ( $headers as $header) { ?>  < ?php } ?>  < ?php } ?>  < ?php echo '
' . $header . ''; } ?>
< ?php echo $bodys[$header][$i]; ?>
'; // Here ends the real code

Hier ist der Screenshot HTML-Tabelle von ARRAY