im array werte anwählen nach Sortierarray

JesusFreak777

Erfahrenes Mitglied
Hi ihr,

ich habe Zwei Array,...

ein Array gibt eine Sortierreihenfolge von ID´s aus,...

Code:
Array
(
    [1] => 5
    [2] => 2
)
... es kann auch wie im beispiel sein das nummern fehlen d.h. das als erstes nichts ausgegeben wird,... (muss ggf noch nachgefüllt werden? wenn ja wie?)

im zweiten Array sind lauter werte und vorallem die ID´s,... mein Problem besteht darin das es sich um ein Multidiemensionales Array handelt und ich nicht genau weiß wie ich jetzt herausfinde in welchen Unterarray Gruppe ID die selbe ID ist wie im Sortierarray gerade vorgegeben wird,...

Code:
Array
(
    [1] => Array
        (
            [ID] => 2
            [bg] => wert 17
        )

    [0] => Array
        (
            [ID] => 5
            [bg] => wert 39
        )

)


wie kann ich jetzt (momentan habe ich eine foreachschleife, bin aber auch für anderes offen), meine z.B. bg werte ausgeben?

Ziel ist: es soll ausgegeben werden (nach beispiel Arrays)
erste [0] Zeile: -
zweite [1] Zeile: wert 39
dritte [2] Zeile: wert 17

kann man das verstehen was ich meine?

Danke für eure hilfe
 
Am einfachsten machst du aus dem 2ten Array ein einfacheren array
Code:
$werteIndex:
array(
  [2] => wert 17
  [5] => wert 39
)

Dann kannst du direkt mit dem Wert von Array1 zugreifen
PHP:
//Wertearray aufbauen
foreach($array_2 as $item){
	$werteIndex[$item['ID']] = $item['bg']; 
}
//Aus array1 die Werte aus dem wertearray auslesen
foreach($array_1 as $id){
	echo $werteIndex[$id].'<br />';
}
 
Hi,

danke für die Antwort,... aber ich weiß nicht genau wie ich das hinbekomme,...

wir mein 2. Array so erzeugt:

$array2 = array(); //einfach mal ein Array erzeugen

schleife ($array -> $key & $value) ein anderes Array wird gelistet
{
array_push( $array2, funktion($array[$key][id]; $wert1; $wert2; wert3,...)) //die Funktion rechnet mir ein paar Werte um und fügt neue hinzu,... unteranderem übergebe ich auch eine ID,...
}

daraus folgt so ein komisches Array,...

Code:
Array
(
    [0] => Array
        (
            [ID] => 1
            [bg] => 0
            [lg] => 52.083333333333
            [ed] => 47.916666666667
        )

    [1] => Array
        (
            [ID] => 5
            [bg] => 0
            [lg] => 99.998842592593
            [ed] => 0.0011574074074048
        )

    [2] => Array
        (
            [ID] => 2
            [bg] => 52.083333333333
            [lg] => 47.915509259259
            [ed] => 0.0011574074074048
        )

)

Im zweiten Array stehen dann alle id´s die ich brauche und auch in der Reihenfolge wo ichs brauche,...

Ich bin gerne bereit meinen Arrayaufbau (für array2) umzumodeln,... aber wie?
 
Mach anstelle des array_push() eine zuordnung mit der id als key

PHP:
foreach(...){
    $array2[$array[$key][id]] = funktion($array[$key][id], $wert1, $wert2, wert3,...);
}

der $array2 sieht dann so aus (achte auf die keys)
Code:
Array
(
    [1] => Array
        (
            [ID] => 1
            [bg] => 0
            [lg] => 52.083333333333
            [ed] => 47.916666666667
        )
 
    [5] => Array
        (
            [ID] => 5
            [bg] => 0
            [lg] => 99.998842592593
            [ed] => 0.0011574074074048
        )
 
    [2] => Array
        (
            [ID] => 2
            [bg] => 52.083333333333
            [lg] => 47.915509259259
            [ed] => 0.0011574074074048
        )
 
)

Und somit kannst du nachher in der Ausgabe direkt vom Sortierarray auf $array2 zugreiffen

PHP:
foreach($array1 as $id){
    echo 'bd: '.$array2[$id]['bg'].'<br />';
    //TODO: Dasselbe mit lg und ed
}
 
Zurück