【发布时间】:2014-12-17 12:56:27
【问题描述】:
假设我有这个数组
[0] => Array
(
[revision_no] => 0
[invoice_type] => PK
[transaction_id] => 5
[vendor_number] => 311560353071000
[document_number] => 010.000-12.00000001
[gross] => 34650000
[vat] => 3465000
)
[1] => Array
(
[revision_no] => 1
[invoice_type] => PK
[transaction_id] => 5
[vendor_number] => 311560353071000
[document_number] => 010.000-12.00000001
[gross] => 44650000
[vat] => 4465000
)
[2] => Array
(
[revision_no] => 2
[invoice_type] => PK
[transaction_id] => 5
[vendor_number] => 311560353071000
[document_number] => 010.000-12.00000001
[gross] => 34650000
[vat] => 3465000
)
[3] => Array
(
[revision_no] => 0
[invoice_type] => PK
[transaction_id] => 5
[vendor_number] => 311560353071000
[document_number] => 010.000-12.00000002
[gross] => 34650000
[vat] => 3465000
)
[4] => Array
(
[revision_no] => 1
[invoice_type] => PK
[transaction_id] => 5
[vendor_number] => 311560353071000
[document_number] => 010.000-12.00000002
[gross] => 34650000
[vat] => 3465000
)
[5] => Array
(
[revision_no] => 0
[invoice_type] => PK
[transaction_id] => 5
[vendor_number] => 311560353071000
[document_number] => 010.000-12.00000003
[gross] => 34650000
[vat] => 3465000
)
[6] => Array
(
[revision_no] => 0
[invoice_type] => PK
[transaction_id] => 5
[vendor_number] => 2132134923102931
[document_number] => 010.000-12.00000003
[gross] => 34650000
[vat] => 3465000
)
我应该如何在 PHP 中根据 revision_no vendor_no 和 document_number 选择唯一性。然后对于那些具有相同vendor_no 和document_number 的人,只选择具有最高revision_no 的人。
所以结果会是这样的:
[2] => Array
(
[revision_no] => 2
[invoice_type] => PK
[transaction_id] => 5
[vendor_number] => 311560353071000
[document_number] => 010.000-12.00000001
[gross] => 34650000
[vat] => 3465000
)
[3] => Array
(
[revision_no] => 1
[invoice_type] => PK
[transaction_id] => 5
[vendor_number] => 311560353071000
[document_number] => 010.000-12.00000002
[gross] => 34650000
[vat] => 3465000
)
[5] => Array
(
[revision_no] => 0
[invoice_type] => PK
[transaction_id] => 5
[vendor_number] => 311560353071000
[document_number] => 010.000-12.00000003
[gross] => 34650000
[vat] => 3465000
)
[6] => Array
(
[revision_no] => 0
[invoice_type] => PK
[transaction_id] => 5
[vendor_number] => 2132134923102931
[document_number] => 010.000-12.00000003
[gross] => 34650000
[vat] => 3465000
)
【问题讨论】:
-
你的代码是....
-
此预期值仅考虑唯一的
vendor_no和document_number。如果你带上gross,这应该是五个结果 -
函数
sort()在这里没有帮助。 OP 要求过滤。
标签: php multidimensional-array duplicate-removal