Ergebnis 1 bis 8 von 8

Thema: combine / merge array

  1. #1
    Contao-Nutzer Avatar von marq
    Registriert seit
    20.03.2010.
    Ort
    Göttingen
    Beiträge
    195
    User beschenken
    Wunschliste

    Standard combine / merge array

    Servus,

    irgendwie stehe ich mal wieder auf'n Schlauch.

    Ich habe in der DB ein array abgespeichert, welches so aussieht:

    Code:
    Array
    (
        [0] => Array
            (
                [nr] => 3
                [obst] => "Krische"
            )
    
        [1] => Array
            (
                [nr] => 3
                [obst] => "Himbeere"
            )
        [2] => Array
            (
                [nr] => 5
                [obst] => "Pflaume"
            )		
    
    )
    Ich möchte gerne jetzt das der "key" [nr] kombiniert wird, dafür habe ich mir folgende Funktion gebaut:

    PHP-Code:
    $key="nr";
    protected function 
    group_by($array$key) {
            
    $return = array();
            foreach(
    $array as $val) {
                
    $return[$val[$key]][] = $val;
            }
            return 
    $return;
        } 
    Das Ergebnis davon ist:

    Code:
    Array
    (
        [3] => Array
            (
                [0] => Array
                    (
                        [nr] => 3
                        [obst] => "Krische"
                    )
    
                [1] => Array
                    (
                        [nr] => 3
                        [obst] => "Himbeere"
                    )
    
            )
        [5] => Array
            (
                [0] => Array
                    (
                        [nr] => 5
                        [obst] => "Pflaume"
                    )
    
            )
    )
    Haben möchte ich eigentlich:

    Code:
    Array
    (
        [3] => Array
            (
                [obst] => "Krische"
    	)
                [obst] => "Himbeere"
    	)
        [5] => Array
            (
                [obst] => "Pflaume"
    	)
    )
    Über ein Geistesblitz wäre ich sehr dankbar :-)
    Geändert von marq (24.05.2018 um 08:24 Uhr)

  2. #2
    Contao-Urgestein Avatar von Toflar
    Registriert seit
    15.06.2009.
    Beiträge
    4.467
    Partner-ID
    8667
    User beschenken
    Wunschliste

    Standard

    Ähm, das was du haben möchtest kann es gar nicht geben Du kannst ja nicht zwei identische Keys haben die sich nicht gegenseitig überschreiben.
    Kannst du nochmal versuchen aufzuzeigen, wie das Array aussehen soll?
    Contao Core-Entwickler @terminal42 gmbh
    Wir sind Contao Premium-Partner!
    Für Individuallösungen kannst du uns gerne kontaktieren.
    PS: Heute schon getrakked?

  3. #3
    Contao-Nutzer Avatar von marq
    Registriert seit
    20.03.2010.
    Ort
    Göttingen
    Beiträge
    195
    User beschenken
    Wunschliste

    Standard

    Ja ich glaube ich habe mich ganz schön verrant ...

    Also am Ende soll das ganze als Json dann so aussehen:

    Code:
    {
    	3:
    	{
    		obst: "Krische"
    	},
    	{
    		obst: "Himbeere"
    	}
    },
    {
    	5:
    	{
    		obst: "Pflaume"
    	}
    }
    und im Moment habe ich irgendwie ein Array zuviel in meinen Json-Output...

    Code:
    {
    3: [
    	{
    	nr: "3",
    	obst: "Krische"
    	},
    	{
    	nr: "3",
    	obst: "Himbeere"
    	}
    ],
    5: [
    	{
    	nr: "5",
    	obst: "Pflaume"
    	}
    ],
    	
    }

  4. #4
    Contao-Urgestein Avatar von Toflar
    Registriert seit
    15.06.2009.
    Beiträge
    4.467
    Partner-ID
    8667
    User beschenken
    Wunschliste

    Standard

    Auch das ist kein valides JSON.
    Contao Core-Entwickler @terminal42 gmbh
    Wir sind Contao Premium-Partner!
    Für Individuallösungen kannst du uns gerne kontaktieren.
    PS: Heute schon getrakked?

  5. #5
    Contao-Nutzer Avatar von marq
    Registriert seit
    20.03.2010.
    Ort
    Göttingen
    Beiträge
    195
    User beschenken
    Wunschliste

    Standard

    Danke jetzt habe ich es auch geschnallt *g* war halt ein absoluter Logikfehler meinerseits :-) Gut das es das Forum gibt.

  6. #6
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.943

    Standard

    Zitat Zitat von marq Beitrag anzeigen
    Code:
    Array
    (
        [3] => Array
            (
                [obst] => "Krische"
    	)
                [obst] => "Himbeere"
    	)
        [5] => Array
            (
                [obst] => "Pflaume"
    	)
    )
    Wir @toflar schon schrieb, geht das so nicht. Meinst Du vielleicht eher so:

    Code:
    Array
    (
        [3] => Array
            (
                [obst] => ["Krische","Himbeere"]
    	)
        [5] => Array
            (
                [obst] => ["Pflaume"]
    	)
    )
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  7. #7
    Contao-Nutzer Avatar von marq
    Registriert seit
    20.03.2010.
    Ort
    Göttingen
    Beiträge
    195
    User beschenken
    Wunschliste

    Standard

    Ja das würde mir auch richtig weiter helfen.

  8. #8
    Contao-Urgestein Avatar von Toflar
    Registriert seit
    15.06.2009.
    Beiträge
    4.467
    Partner-ID
    8667
    User beschenken
    Wunschliste

    Standard

    PHP-Code:
    $new = [];

    foreach (
    $array as $v) {
        if (!isset(
    $new[$v['nr']])) {
            
    $new[$v['nr']] = [];
        }

        
    $new[$v['nr']][] = $v['obst'];

    Contao Core-Entwickler @terminal42 gmbh
    Wir sind Contao Premium-Partner!
    Für Individuallösungen kannst du uns gerne kontaktieren.
    PS: Heute schon getrakked?

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •