解析关联数组以根据另一个索引的值显示所有值
Parse associative array to display all values according to another index's value
我有一个 mySQL table 并且当我将行作为关联数组获取时,
我已经有了 table 和所有创建的东西。我只是不确定如何解析关联数组以便我可以在行中显示。
相当肯定可能有更简单的方法来解决这个问题。但是您可以使用 foreach
并检查当前数组值是否首先包含磁盘键,如果有,将其添加到以磁盘名称作为键的新数组中。
$parsed_disks = [];
foreach ($unparsed_disks as $value) {
if (array_key_exists('s3_dir_name', $value)) {
$parsed_disks[$value['s3_dir_name']][] = $value;
} else {
$parsed_disks['UnkownDisk'][] = $value;
}
}
我不知道数组的变量名,所以我使用 $unparsed_disks
作为占位符。请注意,此方法不会以任何字母或数字顺序对新数组进行排序,因为插入是基于旧数组。
这将在 $parsed_disks
数组中生成以下结构。
array (
'FileDrop1626801' =>
array (
0 =>
array (
'sender_id' => '123',
'sender_email' => 'john.doe@gmail.com',
'receiver_id' => '789',
'receiver_email' => 'jane.doe@gmail.com',
'file_name' => 'form.txt',
's3_dir_name' => 'FileDrop1626801',
),
),
'FileDrop1626809' =>
array (
0 =>
array (
'sender_id' => '123',
'sender_email' => 'john.doe@gmail.com',
'receiver_id' => '405',
'receiver_email' => 'john.smith@gmail.com',
'file_name' => 'form.txt',
's3_dir_name' => 'FileDrop1626809',
),
1 =>
array (
'sender_id' => '123',
'sender_email' => 'john.doe@gmail.com',
'receiver_id' => '789',
'receiver_email' => 'jane.doe@gmail.com',
'file_name' => 'form.txt',
's3_dir_name' => 'FileDrop1626809',
),
),
)
然后您可以对其进行迭代,第一次迭代进入数组中的每个 disk,第二次迭代进入在 disk 中找到的每个文件事务。如下所示demo.
我有一个 mySQL table 并且当我将行作为关联数组获取时, 我已经有了 table 和所有创建的东西。我只是不确定如何解析关联数组以便我可以在行中显示。
相当肯定可能有更简单的方法来解决这个问题。但是您可以使用 foreach
并检查当前数组值是否首先包含磁盘键,如果有,将其添加到以磁盘名称作为键的新数组中。
$parsed_disks = [];
foreach ($unparsed_disks as $value) {
if (array_key_exists('s3_dir_name', $value)) {
$parsed_disks[$value['s3_dir_name']][] = $value;
} else {
$parsed_disks['UnkownDisk'][] = $value;
}
}
我不知道数组的变量名,所以我使用 $unparsed_disks
作为占位符。请注意,此方法不会以任何字母或数字顺序对新数组进行排序,因为插入是基于旧数组。
这将在 $parsed_disks
数组中生成以下结构。
array (
'FileDrop1626801' =>
array (
0 =>
array (
'sender_id' => '123',
'sender_email' => 'john.doe@gmail.com',
'receiver_id' => '789',
'receiver_email' => 'jane.doe@gmail.com',
'file_name' => 'form.txt',
's3_dir_name' => 'FileDrop1626801',
),
),
'FileDrop1626809' =>
array (
0 =>
array (
'sender_id' => '123',
'sender_email' => 'john.doe@gmail.com',
'receiver_id' => '405',
'receiver_email' => 'john.smith@gmail.com',
'file_name' => 'form.txt',
's3_dir_name' => 'FileDrop1626809',
),
1 =>
array (
'sender_id' => '123',
'sender_email' => 'john.doe@gmail.com',
'receiver_id' => '789',
'receiver_email' => 'jane.doe@gmail.com',
'file_name' => 'form.txt',
's3_dir_name' => 'FileDrop1626809',
),
),
)
然后您可以对其进行迭代,第一次迭代进入数组中的每个 disk,第二次迭代进入在 disk 中找到的每个文件事务。如下所示demo.