2015-07-22 3 views
1

У меня есть массив. первые:Сортировка массива по значению другого массива

$comment = Array ( 
    [1] => 1 
    [ 2] => 1 
    [ 3] => 8 
    [ 5] => 3 
    [ 6] => 2 
    [ 7] => 4 
     ) 

И у меня есть второй массив:

$item = Array ( 
[0] => Array ([id] => 1 [title] => Neque porro quisquam est qui dolorem) 
[1] => Array ([id] => 2 [title] => Sed a est quis sem pellentesque luctus.) 
[2] => Array ([id] => 3 [title] => There is no one who loves pain itself) 
[3] => Array ([id] => 5 [title] => There is no one who loves pain itself) 
[4] => Array ([id] => 6 [title] => Sed a est quis sem pellentesque luctus.) 
[5] => Array ([id] => 7 [title] => Neque porro quisquam est qui dolorem) 
) 

В ключе массива «комментарий» он является идентификатором в массиве «элемент». Я хочу отсортировать массив «item» для значения массива «comment».

Для примера:

[2] => Array ([id] => 3 [title] => There is no one who loves pain itself) // value in $comment 8 
[5] => Array ([id] => 7 [title] => Neque porro quisquam est qui dolorem)  // value in $comment 4 
[3] => Array ([id] => 5 [title] => There is no one who loves pain itself) // value in $comment 3 
... 

Я попытался разобраться с помощью array_multisort, но я не мог этого сделать. Помогите решить эту проблему.

+3

Я не могу видеть, как вы можете сортировать '$ item' с помощью' $ comment', чтобы получить данный результат. – vonUbisch

ответ

2

попробовать это

// first merge the arrays 

foreach ($item as $key => $tab) { 
    $item[$key]["numComment"] = $comment[$tab["id"]]; 
} 


// then sort 

usort($item, function ($t1, $t2) { 
    return $t2["numComment"] - $t1["numComment"]; 
}); 

var_dump($item); 
+0

Большое вам спасибо. У меня есть несколько часов агонии, вы решаете мою проблему. – RQEST

Смежные вопросы