如果单个值有多个键,则按键筛选多维数组



我有一个大型的多维数组,如下所示:

$valueall = array();
$valueall[employee_id][salary_month][for_the_month][ed_type][ed_code]=>floatval(amount);

如何仅过滤掉ed_type = T数组并存储到新数组中?

数组输出:

Array
(
[010789] => Array
(
[2018-04-01] => Array
(
[2018-04-01] => Array
(
[T] => Array
(
[101] => 4
[108] => 2
[109] => 1
)
[O] => Array
(
[155] => 35.5
)
[D] => Array
(
[445] => 1111
[446] => 0
)
)
[2018-03-01] => Array
(
[T] => Array
(
[102] => 2
)
[E] => Array
(
[201] => 651
[205] => 325
[214] => 20
[217] => 107
[235] => 40
[267] => 49
)
)
)
)
)

您可以使用array_column。

$T = array_column($valueall, "T");

我无法测试它,但它应该给你 101、108、109 和 102 个值。

实际上,您需要在使用时指定内部键array_column.见下文,我为您创建了快速片段。

$records = [
"010789" => [
"2018-04-01" => [
"2018-04-01" => [
"T" => [
101 => 4,
108 => 2,
109 => 1,
],
0 => [
155 => 35.5
],
"D" => [
445 => 1111,
446 => 0
]
],
"2018-03-01" => [
"T" => [
102 => 2
],
"E" => [
201 => 651,
205 => 325,
214 => 20,
217 => 107,
235 => 40,
267 => 49
]
]
]
]
];
print_r(array_column($records["010789"]["2018-04-01"], "T"));

输出:

(
[0] => Array
(
[101] => 4
[108] => 2
[109] => 1
)
[1] => Array
(
[102] => 2
)
)

让我知道它是否有帮助。谢谢。

最新更新