2016-04-27 5 views
0

Gibt es eine einfache Möglichkeit, ein Array mit einem variablen Array für diese Aufgabe zu sortieren? Zum Beispiel:PHP - Array mit einem anderen Array sortieren

$fruits [ 
    'Apple' => '12', 
    'Cherry' => '10', 
    'Lemon' => '34', 
    'Peach' => '6' 
] 

$order [ 
    1 => 'Peach', 
    2 => 'Other', 
    3 => 'Lemon', 
    4 => 'Other2', 
    5 => 'Apple', 
    6 => 'Cherry', 
    7 => 'Other3' 
] 

Ich mag diese Art von Array zurück:

$ordered_fruits [ 
    'Peach' => '6', 
    'Lemon' => '34', 
    'Apple' => '12', 
    'Cherry' => '10' 
] 
+0

Sehen Sie dieses Beispiel für Array kombinieren Funktion kann es http://www.w3schools.com/php/showphp helfen. asp? filename = demo_func_array_combine –

+1

keine sortierung, nur suchen und ein neues array machen .. –

Antwort

4
$ordered_fruits = array(); 
foreach($order as $value) { 

    if(array_key_exists($value,$fruits)) { 
     $ordered_fruits[$value] = $fruits[$value]; 
    } 
} 
+1

toll, ich nahm ein bisschen Zeit, um eine antwort zu geben. –

3

es mit PHP-Funktionen machen:

$new = array_filter(array_replace(array_fill_keys($order, null), $fruits)); 
+0

Wie lustig die PHP-Funktionen sind ....., Wir haben eine Menge Code und Sie haben es mit einigen Bibliotheksfunktionen getan. –

+0

Ja, es ist Bibliothek hat so viele Spaß, dass, wenn nicht die SO habe ich vergessen, die Hälfte von ihnen :) – splash58

1

Technik der Sortierung:

$result = array(); 

foreach($order as $value){ 
    if(array_key_exists($value, $fruits)){ 
     $result[$value] = $fruits[$value]; 
    } 
} 

Ergebnis

print_r($result); 

Array 
(
    [Peach] => 6 
    [Lemon] => 34 
    [Apple] => 12 
    [Cherry] => 10 
) 
2

try this:

$fruits = array(
    'Apple' => '12', 
    'Cherry' => '10', 
    'Lemon' => '34', 
    'Peach' => '6' 
); 

$order = array(
    1 => 'Peach', 
    2 => 'Other', 
    3 => 'Lemon', 
    4 => 'Other2', 
    5 => 'Apple', 
    6 => 'Cherry', 
    7 => 'Other3' 
); 

$result = array(); 
foreach ($order as $key => $value) { 
    if (array_key_exists($value, $fruits)) { 
    $result[$value] = $fruits[$value]; 
    } 
} 
print_r($result); 
+0

guten Job ........ –