【发布时间】:2021-12-28 09:11:42
【问题描述】:
美好的一天。我有以下问题:
我有一个数组..我想改变它的结构..如果 object_id 不一样,我不想将数组放入父数组。这个怎么做? object_id 917 的数组应该比索引为 1 和 2 的数组高。
例如是否可以在索引 1 处拥有不同 object_id 的数组数组?
object_type就像唯一索引。
初始数组:
$arr = [
[
'initiator_id' => 259, 'object_type' => 1, 'object_id' => 905,
'date' => '2021-11-16 06:24:16',
],
[
'initiator_id' => 259, 'object_type' => 1, 'object_id' => 917,
'date' => '2021-11-16 06:24:16',
],
[
'initiator_id' => 259, 'object_type' => 1, 'object_id' => 905,
'date' => '2021-11-16 04:54:54',
],
[
'initiator_id' => 259, 'object_type' => 1, 'object_id' => 905,
'date' => '2021-11-16 04:53:58',
],
[
'initiator_id' => 219, 'object_type' => 2, 'object_id' => 915,
'date' => '2021-11-16 04:53:58',
],
];
数组:
Array
(
[object_type] => Array
(
[1] => Array
(
[0] => Array
(
[initiator_id] => 259
[object_id] => 905
[date] => 2021-11-16 06:24:16
[activity] => added
)
[1] => Array
(
[initiator_id] => 259
[object_id] => 917
[date] => 2021-11-16 06:24:16
[activity] => deleted
)
[2] => Array
(
[initiator_id] => 259
[object_id] => 905
[date] => 2021-11-16 04:54:54
[activity] => reopen
)
[3] => Array
(
[initiator_id] => 259
[object_id] => 905
[date] => 2021-11-16 04:53:58
[activity] => insert
)
)
[2] => Array
(
[0] => Array
(
[initiator_id] => 219
[object_id] => 915
[date] => 2021-11-16 04:53:58
[activity] => change
)
)
)
)
php代码:
foreach($arr as $record) {
foreach($record as $k => $v) {
if($k == 'object_type') {
$newArr['object_type'][$v][] = [
'initiator_id' => $record['initiator_id'],
'object_id' => $record['object_id'],
'date' => $record['date'],
];
}
}
}
预期结果:
[object_type] => Array
(
[1] => Array
(
[905] => Array
(
[1] => Array
(
[initiator_id] => 219
[object_id] => 905
[date] => 2021-11-16 04:53:58
[activity] => change
)
[2] => Array
(
[initiator_id] => 219
[object_id] => 905
[date] => 2021-11-16 04:53:58
[activity] => change
)
)
[917] => Array
(
[1] => Array
(
[initiator_id] => 219
[object_id] => 917
[date] => 2021-11-16 04:53:58
[activity] => change
)
[2] => Array
(
[initiator_id] => 219
[object_id] => 917
[date] => 2021-11-16 04:53:58
[activity] => change
)
)
)
[2] => Array
(
[925] => Array
(
[1] => Array
(
[initiator_id] => 925
[object_id] => 917
[date] => 2021-11-16 04:53:58
[activity] => change
)
)
)
)
【问题讨论】:
-
如果
object_id都是唯一的,它应该怎么做? -
您想要一个新数组顶层的所有initiator_id、object_id、日期“元组”?
-
Justinas,如果 object_id 都是唯一的 .. 它是上面的新数组级别。在一个数组中放入具有相同 object_id 的 olny 数组。
-
Torbjörn Stabo,是的 .. 如果 object_id 不同,所有数据都放在新数组的顶层。在一个数组中只放置具有相同 object_id 的数组。
-
我的意思是是否有可能在索引 1 处例如具有不同 object_id 的数组数组?