大家好,我正在努力解决一个问题,但无法在网上找到答案。 也许我犯了一个错误而不是抱歉,但我找到的答案并不是我搜索的地方。
这是我的问题
["acList"]=>
array(356) {
[0]=>
array(36) {
["Id"]=>
int(434367)
["Rcvr"]=>
int(154)
["HasSig"]=>
bool(true)
["Sig"]=>
int(19)
["Icao"]=>
string(6) "06A0BF"
["Bad"]=>
bool(false)
["Reg"]=>
string(6) "A7-BDA"
["FSeen"]=>
string(21) "/Date(1509481499558)/"
}
[1]=>
array(43) {
["Id"]=>
int(3753696)
["Rcvr"]=>
int(149)
["HasSig"]=>
bool(true)
["Sig"]=>
int(23)
["Icao"]=>
string(6) "3946E0"
["Bad"]=>
bool(false)
["Reg"]=>
string(6) "A7-BDA"
["FSeen"]=>
string(21) "/Date(1509481476453)/"
}
我希望当“Reg”与他只移除一个相同的数组时相同(如果可能的话,基于FSeen)。
我尝试制作新阵列并将它们组合起来,我尝试了array_unique,但这并不是我想做的事情。
我希望有人可以帮我解决这个问题。
答案 0 :(得分:0)
它不是最有效的方式,也不适合大型数据集,但这可能有效:
$aArray = array(array('id' => 1), array('id' => 2), array('id' => 1));
// create a tmp array to hold values we want to check
$aTmpArray = array();
// loop over the array
foreach ($aArray as $iPos => $aItem) {
if(!isset($aTmpArray[$aItem['id']])){
// if the item doesnt exist in tmp array, add it
$aTmpArray[$aItem['id']] = null;
}else{
// if the item exists, remove this entry from aArray
unset($aArray[$iPos]);
}
}
// set for gc
$aTmpArray = null;
它将保留第一个结果并删除id
的任何副词重复/出现。