+ Antworten
Ergebnis 1 bis 3 von 3

Thema: [gelöst] PHP: array-konfusion

  1. #1
    Kommt häufiger vorbei Avatar von Berndi
    Registriert seit
    20.02.2013
    Beiträge
    279
    Bedankte sich
    56
    Erhielt 2 Danksagungen
    in 2 Beiträgen

    Standard [gelöst] PHP: array-konfusion

    Hallo Experten,

    ich habe zwei Arrays

    Code:
    $arr1=Array
    (
        (0) => Array
            (
                (id) => '1',
                (name) => 'Sandra Shush',
                (ort_id) => '100'
            ),
    
        (1) => Array
            (
                (id) => '5465',
                (name) => 'Stefanie Mcmohn',
                (ort_id) => '2'
            ),
    
        (2) => Array
            (
                (id) => '40489',
                (name) => 'Michael',
                (ort_id) => '44'
            )
    );
    
    $arr2=Array
    (
        (0) => Array
            (
                (ort_id) => '1', 
                (ort) => 'Hambung'
            ),
    
        (1) => Array
            (
                (ort_id) => '2', 
                (ort) => 'Buxtehude'
            ),
           .
           .
           .
        (43) => Array
            (
                (ort_id) => '44', 
                (ort) => 'Frankfurt'
            ),
           .
           .
           .
        (99) => Array
            (
                (ort_id) => '100', 
                (ort) => 'Kapstadt'
            )
    );
    Jetzt möchte ich in PHP eine einfache Abfrage machen, die bewirken soll, dass unter Zuhilfenahme der ort_id beide arrays verglichen werden und so dem Namen (name) ein Ort (ort) zugeordnet werden kann.

    Danke für die Hilfe!
    Berndi
    Geändert von Berndi (30.08.2017 um 18:12 Uhr)
    -----------------------------------------------------------------------------------
    Merke: Planung ist der Ersatz des Zufalls durch den Irrtum.

  2. #2
    Kommt häufiger vorbei Avatar von Berndi
    Registriert seit
    20.02.2013
    Beiträge
    279
    Bedankte sich
    56
    Erhielt 2 Danksagungen
    in 2 Beiträgen

    Standard

    Habe das jetzt mit diesem Ansatz gelöst:

    Code:
    for ($i=0; $i < count($arr1); $i++) {    
        $loc_key = array_search($arr1[$i]['ort_id'], array_column($arr2, 'ort_id'));
        $loc_id = $arr1[$loc_key]['name'];
        $loc_title = $arr2[$loc_key]['ort'];
        }
    -----------------------------------------------------------------------------------
    Merke: Planung ist der Ersatz des Zufalls durch den Irrtum.

  3. #3
    Gehört zum Inventar Avatar von Re:Later
    Registriert seit
    21.04.2014
    Ort
    Berlin
    Beiträge
    5.795
    Bedankte sich
    156
    Erhielt 2.255 Danksagungen
    in 2.022 Beiträgen

    Standard

    Sind mehrere Wege denkbar. Ich würde erst mal Orte nach ort_id indexieren vorausgesetzt die ort_id ist eindeutig/unverwechselbar.

    Ab PHP 7 gibt es eine nette Funktion dafür.
    Code:
    $orte = array(
     array(
    	'ort_id' => '1',
    	'ort' => 'Hambung',
    	),
     array(
    	'ort_id' => '2',
    	'ort' => 'Buxtehude',
    	),
    	array(
    	'ort_id' => '44',
    	'ort' => 'Frankfurt',
    	),
    	array(
    	'ort_id' => '100',
    	'ort' => 'Kapstadt',
    	),
    );
    
    $orte_neu = array_column($orte, 'ort', 'ort_id' );

    Das ergibt dann ein neues Array $orte_neu mit ort_id als Indices.

    Code:
     Array
    (
        [1] => Hambung
        [2] => Buxtehude
        [44] => Frankfurt
        [100] => Kapstadt
    )
    Joomlafachmann: https://www.ghsvs.de

  4. Erhielt Danksagungen von:


+ Antworten

Berechtigungen

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