многомерный массив одно и то же значение удалить массив

Привет всем, я борюсь с проблемой и не могу найти свой ответ в Интернете.
Может быть, я сделал ошибку, чем сожалею, но ответы, которые я нашел, где не точно, где я, где искал.

Вот моя проблема

  ["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, но это не делает то, что я хочу, к сожалению.

Я надеюсь, что кто-то может помочь мне с этим.

1

Решение

Это не будет самый эффективный способ или отлично подходит для больших наборов данных, но это может сработать:

$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,

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector