Привет всем, я борюсь с проблемой и не могу найти свой ответ в Интернете.
Может быть, я сделал ошибку, чем сожалею, но ответы, которые я нашел, где не точно, где я, где искал.
Вот моя проблема
["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, но это не делает то, что я хочу, к сожалению.
Я надеюсь, что кто-то может помочь мне с этим.
Это не будет самый эффективный способ или отлично подходит для больших наборов данных, но это может сработать:
$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
,
Других решений пока нет …