PHP数组、动态数组名或其他技术
我继承了一个项目,在该项目中,我需要按以下格式向表中添加数据PHP数组、动态数组名或其他技术,php,arrays,dynamic,Php,Arrays,Dynamic,我继承了一个项目,在该项目中,我需要按以下格式向表中添加数据 Fitness101,FT101,EA101,RX101 我在一个数组中得到的是以下内容: Fitness101,FT101 Fitness101,EA101 Fitness101,RX101 Fitness102,FT102 Fitness102,EA102 Fitness102,RX102 Fitness103,FT103 Fitness103,EA103 Fitness103,RX103 我需要根据每个健身水平对课程进行分组
Fitness101,FT101,EA101,RX101
我在一个数组中得到的是以下内容:
Fitness101,FT101
Fitness101,EA101
Fitness101,RX101
Fitness102,FT102
Fitness102,EA102
Fitness102,RX102
Fitness103,FT103
Fitness103,EA103
Fitness103,RX103
我需要根据每个健身水平对课程进行分组,并添加以下3个记录/行:
Fitness101,FT101,EA101,RX101
Fitness102,FT102,EA102,RX102
Fitness103,FT103,EA103,RX103
实现这一目标的最佳方法是什么
我尝试了几个if/while/foreach语句/循环,但没有成功
是否可以使用动态数组名,或者我是否正在使其变得过于复杂
谢谢
如果我打印阵列,它看起来如下所示:
[0] => Fitness101,FT101
[1] => Fitness101,EA101
[2] => Fitness101,RX101
[4] => Fitness102,FT102
[5] => Fitness102,EA102
[6] => Fitness102,RX102
[7] => Fitness103,EA103
[8] => Fitness103,EA103
[9] => Fitness103,RX103
foreach ($your_array as $row) {
$result[$row[0]][0] = $row[0]; // write or overwrite the first column
$result[$row[0]][] = $row[1]; // append the subsequent columns
}
假设输入的格式如下所示:
$entries = [
"Fitness101,FT101",
"Fitness101,EA101",
"Fitness101,RX101",
"Fitness102,FT102",
"Fitness102,EA102",
"Fitness102,RX102",
"Fitness103,FT103",
"Fitness103,EA103",
"Fitness103,RX103"
];
$levels = array();
foreach ($entries as $entry) {
list($level, $class) = explode(',', $entry);
if (!isset($levels[$level])) {
$levels[$level] = $level;
}
$levels[$level] .= ','.$class;
}
$levels = array_values($levels);
echo json_encode($levels);
// Prints:
// ["Fitness101,FT101,EA101,RX101","Fitness102,FT102,EA102,RX102","Fitness103,FT103,EA103,RX103"]
对于这种类型的分组问题,通常可以使用希望分组的列作为结果数组中的键。如果以这种格式的数组开始:
$your_array = [
['Fitness101','FT101'],
['Fitness101','EA101'],
// etc.
];
然后它会像这样工作:
[0] => Fitness101,FT101
[1] => Fitness101,EA101
[2] => Fitness101,RX101
[4] => Fitness102,FT102
[5] => Fitness102,EA102
[6] => Fitness102,RX102
[7] => Fitness103,EA103
[8] => Fitness103,EA103
[9] => Fitness103,RX103
foreach ($your_array as $row) {
$result[$row[0]][0] = $row[0]; // write or overwrite the first column
$result[$row[0]][] = $row[1]; // append the subsequent columns
}
这里,$row[0]是Fitness101等的第一列,当您将其用作$result数组中的键时,您将把每个值添加到该键所指示的行中的一列中,因此它们将按所需输出分组在一起
如果您有一个字符串数组,那么它几乎是一样的,只需首先分解该行
$your_array = [
'Fitness101,FT101',
'Fitness101,EA101',
// etc.
];
foreach ($your_array as $row) {
$row = explode(',', $row);
$result[$row[0]][0] = $row[0];
$result[$row[0]][] = $row[1];
}
您从多维数组、字符串数组、一个长字符串还是什么开始?你能编辑这个问题来显示你从PHP代码开始的内容吗?