PHP-如何基于键减少数组';s值
我有这样一个数组:PHP-如何基于键减少数组';s值,php,arrays,Php,Arrays,我有这样一个数组: Array ( [0] => Array ( [CommodityID] => 10 [RetailerID] => 1798 [Name] => Petrol [City] => Parow [Line1] => 49 Fifth Avenue [Line2] =>
Array
(
[0] => Array
(
[CommodityID] => 10
[RetailerID] => 1798
[Name] => Petrol
[City] => Parow
[Line1] => 49 Fifth Avenue
[Line2] =>
[Line3] =>
[ContractorName] => BP Fifth Ave Motors Parow
[AreaCode] => 021
[Number] => 9305025
[Latitude] => -33.896493
[Longitude] => 18.579302
[LogoUrl] => https://webservices.test.com/ContractorLogos/bp.png
[dist] => 0.00
)
[1] => Array
(
[CommodityID] => 10
[RetailerID] => 1798
[Name] => Petrol
[City] => Parow
[Line1] => 49 Fifth Avenue
[Line2] =>
[Line3] =>
[ContractorName] => BP Fifth Ave Motors Parow
[AreaCode] => 021
[Number] => 9305025
[Latitude] => -33.896493
[Longitude] => 18.579302
[LogoUrl] => https://webservices.test.com/ContractorLogos/bp.png
[dist] => 0.00
)
[2] => Array
(
[CommodityID] => 22
[RetailerID] => 1758
[Name] => Jewellers
[City] => Parow
[Line1] => Shop 4
[Line2] => Mc Intyre Square
[Line3] => Mc Intyre Road
[ContractorName] => Du Plessis Manufacturing Jewellers Parow
[AreaCode] => 021
[Number] => 9300788
[Latitude] => -33.895200
[Longitude] => 18.586710
[LogoUrl] => https://webservices.test.com/ContractorLogos/DuPlessisJewellers.png
[dist] => 0.01
)
)
我只想拥有唯一的[RetailerID],即:
Array
(
[0] => Array
(
[CommodityID] => 10
[RetailerID] => 1798
[Name] => Petrol
[City] => Parow
[Line1] => 49 Fifth Avenue
[Line2] =>
[Line3] =>
[ContractorName] => BP Fifth Ave Motors Parow
[AreaCode] => 021
[Number] => 9305025
[Latitude] => -33.896493
[Longitude] => 18.579302
[LogoUrl] => https://webservices.test.com/ContractorLogos/bp.png
[dist] => 0.00
)
[1] => Array
(
[CommodityID] => 22
[RetailerID] => 1758
[Name] => Jewellers
[City] => Parow
[Line1] => Shop 4
[Line2] => Mc Intyre Square
[Line3] => Mc Intyre Road
[ContractorName] => Du Plessis Manufacturing Jewellers Parow
[AreaCode] => 021
[Number] => 9300788
[Latitude] => -33.895200
[Longitude] => 18.586710
[LogoUrl] => https://webservices.test.com/ContractorLogos/DuPlessisJewellers.png
[dist] => 0.01
)
)
我尝试了array_unique,但基于所有列,它似乎都是唯一的。是否有一个php内置函数可以通过只查看一个数组键的值来执行此操作?将迭代数组一次,并仅保存该字段的唯一值一次,例如:
$newArray = array();
foreach($array as $item) {
$newArray[$item['RetailerID']] = $item;
}
这将始终只保存相同类型的最后一项。您可以修改逻辑以满足您的需要。
另一种更安全的可能性是保存唯一值并检查它们:
$exists = array();
$newArray = array();
foreach($array as $item) {
if(!in_array($item['RetailerID'],$exists)){
$newArray[$item['RetailerID']] = $item;
$exists[] = $item['RetailerID'];
}
}
可能的复制品:[可能的复制品谢谢你,先生。工作得很好。