Сгруппируйте двумерный массив по столбцу и создайте подмассивы в каждой группе.Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Сгруппируйте двумерный массив по столбцу и создайте подмассивы в каждой группе.

Сообщение Anonymous »

Я пытаюсь сгруппировать массив по его значениям. Ниже мой массив:

$array = Array
(
0 => Array
(
'name' = > 'Джон Доу',
'возраст' => '36',
'код' => '437',
'группа' => '1000',
) ,
1 => Массив
(
'name' => 'Джон Доу',
'возраст' => '36',
'код' => '437',
'group' => '7777',
),

2 => Массив
(
'name' => ' Джон Доу',
'возраст' => '36',
'код' => '437',
'группа' => '7777',
), 3 => Массив
(
'имя' => 'Джон Доу',
'возраст' => '36',
'код' => '437 ',
'group' => '4000',
),

4 => Массив
(
'name' => 'Джон Доу ',
'возраст' => '36',
'код' => '437',
'группа' => '4000',
),

5 => Массив
(
'name' => 'Джон Доу',
'возраст' => '36',
'код' => '437',
'group' => '5000',
),

6 => Массив
(
'name' => ' Джон Доу',
'возраст' => '36',
'код' => '437',
'группа' => '6000',
),
7 => Массив
(
'имя' => 'Джон Доу',
'возраст' => '36',
'код' => '437',
'группа' => '6000',
),
);


Я попробовал ниже:

Код: Выделить всё

$result = array();
foreach ($array as $key => $record) {
if (!isset($result[$record['code']])) {
$result[$record['code']] = array(
'name' => $record['name'],
'age' => $record['age'],
'groups' => array(array($record['code'], $record['group'])),
);
}
else {
$result[$record['code']]['groups'][] = array($record['code'],$record['group']);
}
}
$result = array_values($result);

print_r($result);
И я получаю:

Массив
(
[0] => Массив
(
[имя] => Джон Доу
[возраст] => 36
[группы] => Массив
(
[0] => Массив
(
[0] => 437
[1] => 1000
)

[1] => Массив
(
[0] => 437
[1] => 7777
)

[2] => Массив
(
[0] => 437
[1] => 7777
)

[3] => Массив
(
[0] => 437
[ 1] => 4000
)

[4] => Массив
(
[0] => 437
[1] => 4000 )

[5] => Массив
(
[0] => 437
[1] => 5000
)

[6] => Массив
(
[0] => 437
[1] => 6000
)

[7] => Массив
(
[0] => 437
[1] => 6000
)

)
)

)

Теперь я хочу, чтобы мой массив был сгруппирован по значениям группы 7777, 1000 и других (все остальные групповые значения):

Массив
(
[0] => Массив
(
[имя] => Джон Доу
[возраст] => 36
[7777] => Массив
(
[0] => Массив
(
[0] => 437
[1] => 7777
)

[1] => Массив
(
[0] => 437
[ 1] => 7777
)
)
[6000] => Массив
(
[0] => Массив
(
[ 0] => 437
[1] => 6000
)

[1] => Массив
(
[0] => 437 [1] => 6000
)
)
[others] => Массив
(
[0] => Массив
( [0] => 437
[1] => 1000
)

[1] => Массив
(
[0] => 437
[1] => 4000
)

[2] => Массив
(
[0] => 437
[1] => 4000
)

[3] => Массив
(
[0] => 437
[1] => 5000
)
)

)

)


Подробнее здесь: https://stackoverflow.com/questions/517 ... each-group
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»