2015-02-06 5 views
-3

У меня есть массив как это:Как я могу группировать значения массива в новый массив?

$a = [ 
    '53' => ['Foo', 1], 
    '234' => ['Bar', 12], 
    '343' => ['Bar', 22], 
    '3' => ['Qux', 12], 
    '34' => ['Foo', 1], 
    ...] 

Я хочу, чтобы создать массив, который выглядит следующим образом:

['1' => ['Foo', 'Foo'], 
'12' => ['Bar', 'Qux'] 
'22' => ['Bar']] 

То есть, я хочу посмотреть на второй элемент каждого элемента в $a и создать массив, который использует этот второй элемент в качестве индекса в новом массиве, причем первые значения элементов добавляются вместе в массив.

Надеюсь, это имеет смысл, возможно, это хороший способ сделать это, но мне не хватает знаний в PHP-массиве.

ответ

4
$result = array(); 
foreach($a as $value) { 
    $result[$value[1]][] = $value[0]; 
}