php - PHP:根据值分隔数组
问题描述
我有以下数组:
$raw = [
[
'prop1' => 'somevalue',
'prop2' => 'anothervalue',
'path' => 'used'
],
[
'prop1' => 'somevalue',
'prop2' => 'anothervalue',
'path' => 'used'
],
[
'prop1' => 'somevalue',
'prop2' => 'anothervalue',
'path' => 'used'
],
[
'prop1' => 'somevalue',
'prop2' => 'anothervalue',
'path' => 'used'
],
[
'prop1' => 'somevalue',
'prop2' => 'anothervalue',
'path' => 'used'
],
[
'prop1' => 'somevalue',
'prop2' => 'anothervalue',
'path' => 'new'
],
[
'prop1' => 'somevalue',
'prop2' => 'anothervalue',
'path' => 'new'
],
[
'prop1' => 'somevalue',
'prop2' => 'anothervalue',
'path' => 'new'
],
];
我需要通过这个数组进行过滤,最好使用filter_array
以保持代码更干净,我需要根据path
属性进行过滤。所以我最终会得到:
$filtered = [
'used' => [
[
'prop1' => 'somevalue',
'prop2' => 'anothervalue',
'path' => 'used'
],
[
'prop1' => 'somevalue',
'prop2' => 'anothervalue',
'path' => 'used'
],
[
'prop1' => 'somevalue',
'prop2' => 'anothervalue',
'path' => 'used'
],
[
'prop1' => 'somevalue',
'prop2' => 'anothervalue',
'path' => 'used'
],
[
'prop1' => 'somevalue',
'prop2' => 'anothervalue',
'path' => 'used'
]
],
'new' => [
[
'prop1' => 'somevalue',
'prop2' => 'anothervalue',
'path' => 'new'
],
[
'prop1' => 'somevalue',
'prop2' => 'anothervalue',
'path' => 'new'
],
[
'prop1' => 'somevalue',
'prop2' => 'anothervalue',
'path' => 'new'
]
]
];
解决方案
您的代码缺少逗号,因此在语法上无效。在下面的演示中查看更新的更正代码。你只需要这个简单的代码:
<?php
$filtered = array();
foreach ($raw as $item) {
$filtered[$item["path"]][] = $item;
}
输出
Array
(
[used] => Array
(
[0] => Array
(
[prop1] => somevalue
[prop2] => anothervalue
[path] => used
)
[1] => Array
(
[prop1] => somevalue
[prop2] => anothervalue
[path] => used
)
[2] => Array
(
[prop1] => somevalue
[prop2] => anothervalue
[path] => used
)
[3] => Array
(
[prop1] => somevalue
[prop2] => anothervalue
[path] => used
)
[4] => Array
(
[prop1] => somevalue
[prop2] => anothervalue
[path] => used
)
)
[new] => Array
(
[0] => Array
(
[prop1] => somevalue
[prop2] => anothervalue
[path] => new
)
[1] => Array
(
[prop1] => somevalue
[prop2] => anothervalue
[path] => new
)
[2] => Array
(
[prop1] => somevalue
[prop2] => anothervalue
[path] => new
)
)
)
推荐阅读
- react-native - 反应原生动画模态以从左到右显示
- python - 使用 PyInstaller 时 plyer 出现问题
- php - 如果数字太大,请使用缩写
- google-apps-script - Google Apps 脚本 - 更新所有组和所有组中的所有成员
- python - python Ray:如何写入文件
- snowflake-cloud-data-platform - 如何检索通过雪花 javascript API 插入的行数?
- swift - 在 swiftUI 中创建星形动画时遇到问题
- c# - 从验证函数验证 wpf 中文本框中的数据
- python - 如何在 Python 中将零添加到数组的第二维?
- search - seq_search([ann1, ann2]) 和 ann1 :: ann2 之间的区别?