PHP: iki diziyi karşılaştırmak ve sıralama önceliği ile

0 Cevap php

Ben iki diziyi karşılaştırmak istiyorum: Bir olası seçenekler listesini içeren ve diğer dizi öncelikleri içeriyor.

Bu iki dizileri organize edilmesidir:

foreach ($varsA as $varA) {
  foreach ($varsB as $varB) {
      $options[$varA][$varB] = $id;
      $priority[$varA] = $priority + $priority[$varA];
    }
}

Bu $ seçenekler içeren budur:

array (
  1 => 
  array (
    33307 => 'w',
    33313 => '7',
  ),
  2 => 
  array (
    33307 => 'w',
    33313 => '7',
  ),
  3 => 
  array (
    33307 => 'w',
    33313 => '7',
  ),
  4 => 
  array (
    33307 => '4',
    33313 => '7',
  ),
)

ve bu $ öncelik içeren budur:

array (
  1 => 5,
  2 => 9,
  3 => 9,
  4 => 5,
)

Ben $ seçeneklerden çiftleri yinelenen değerleri ve düşük öncelik uniques ile bir tutmak istiyorum:

Çıkışı olacaktır: 1, 2, 3 benzersiz değildir ve 1 küçük önceliğe sahiptir Array (1, 4) Çünkü.

Ben çiftleri kaldırmak için aşağıdaki işlevi kullanılarak ama ben öncelikleri ile başa çıkmak için adapte nasıl bilmiyorum:

super_magic($options) {
    $result = array_map("unserialize", array_unique(array_map("serialize", $options)));
    foreach ($result as $key => $value) {
      if ( is_array($value) ) {
        $result[$key] = super_magic($value);
      }
    }
    return $result;
  }

0 Cevap