Anonymous
Сгруппируйте данные строки из двухмерного массива по одному столбцу и заполните подмассив группы другим столбцом.
Сообщение
Anonymous » 26 янв 2025, 22:27
У меня есть массив, который содержит данные следующим образом.
Код: Выделить всё
$students_array = [
["class" => 1, "sid" => "s00123"],
["class" => 2, "sid" => "s00456"],
["class" => 1, "sid" => "s008765"],
["class" => 1, "sid" => "s008987"],
["class" => 3, "sid" => "s008789"],
["class" => 3, "sid" => "s008543"]
];
Массив содержит идентификатор класса и ученика. Я хочу сгруппировать этот массив таким образом, чтобы он был сгруппирован по классу.
Код: Выделить всё
[
1 => [
["sid" => "s00123"],
["sid" => "s008765"],
["sid" => "s008987"],
],
2 => [
["sid" => "s00456"],
]
3 => [
["sid" => "s008789"],
["sid" => "s008543"],
]
]
< /code>
Код, который я использую, - < /p>
$class_array = array();
foreach ($students_array as $sa) {
if (isset($class_array[$sa['class']])) {
$inner_array = array();
$inner_array["sid"] = $sa['sid'];
$class_array[$sa['class']][]= $inner_array;
} else {
$inner_array = array();
$inner_array["sid"] = $sa['sid'];
$class_array[$sa['class']][]= $inner_array;
}
}
это мне подходит, но есть ли какое-нибудь лучшее решение или какие-либо встроенные функции PHP для этого?
Подробнее здесь:
https://stackoverflow.com/questions/606 ... subarray-w
1737919664
Anonymous
У меня есть массив, который содержит данные следующим образом.[code]$students_array = [ ["class" => 1, "sid" => "s00123"], ["class" => 2, "sid" => "s00456"], ["class" => 1, "sid" => "s008765"], ["class" => 1, "sid" => "s008987"], ["class" => 3, "sid" => "s008789"], ["class" => 3, "sid" => "s008543"] ]; [/code] Массив содержит идентификатор класса и ученика. Я хочу сгруппировать этот массив таким образом, чтобы он был сгруппирован по классу. [code][ 1 => [ ["sid" => "s00123"], ["sid" => "s008765"], ["sid" => "s008987"], ], 2 => [ ["sid" => "s00456"], ] 3 => [ ["sid" => "s008789"], ["sid" => "s008543"], ] ] < /code> Код, который я использую, - < /p> $class_array = array(); foreach ($students_array as $sa) { if (isset($class_array[$sa['class']])) { $inner_array = array(); $inner_array["sid"] = $sa['sid']; $class_array[$sa['class']][]= $inner_array; } else { $inner_array = array(); $inner_array["sid"] = $sa['sid']; $class_array[$sa['class']][]= $inner_array; } } [/code] это мне подходит, но есть ли какое-нибудь лучшее решение или какие-либо встроенные функции PHP для этого? Подробнее здесь: [url]https://stackoverflow.com/questions/6069150/group-row-data-from-a-2d-array-by-one-column-and-populate-the-groups-subarray-w[/url]