Несколько простые PHP выстраивают вопрос о пересечении

Эта проблема была изучена в некоторых деталях.

существует ряд очень актуальных реализаций в TSpectrum* классы КОРЕНЬ (ядерный аналитический инструмент / аналитический инструмент физики элементарных частиц). Код работает в одном - к трехмерным данным.

КОРНЕВОЙ исходный код доступен, таким образом, можно захватить эту реализацию, если Вы хотите.

От документация TSpectrum класса:

алгоритмы, используемые в этом классе, были опубликованы в следующих ссылках:

[1] M.Morhac и др.: Фоновые методы устранения для многомерных спектров гамма-луча совпадения. Ядерные Инструменты и Методы в Физике Исследуют 401 (1997) 113 - 132.

[2] M.Morhac и др.: Эффективный один - и двумерная Золотая развертка и ее приложение к разложению спектров гамма-луча. Ядерные Инструменты и Методы в Физике Исследуют 401 (1997) 385-408.

[3] M.Morhac и др.: Идентификация пиков в многомерных спектрах гамма-луча совпадения. Ядерные Инструменты и Методы в Физике Исследования 443 (2000), 108-125.

бумаги связаны из документации класса для тех из Вас, у кого нет NIM подпиской онлайн.

короткая версия того, что сделано, - то, что гистограмма, сглаженная для устранения шума, и затем локальных максимумов, обнаруживается грубой силой в сглаженной гистограмме.

6
задан Lachlan McD. 16 November 2009 в 12:51
поделиться

4 ответа

попробуйте использовать array_flip {переключает ключи с их значениями}, а затем используйте array_intersect () на вашем примере:

$c = array_flip($b); // so you have your original b-array
$intersect = array_intersect($a,c);
10
ответ дан 8 December 2019 в 18:37
поделиться

Я не на 100% понимаю, что вы хотите. Хотите сравнить значения из $ a с KEYS из $ b?

Есть несколько функций пересечения:

http://php.net/manual/en/function.array-intersect.php http : //www.php.net/manual/en/function.array-intersect-key.php

Но, возможно, вам понадобится:

http://www.php.net/manual/en/function.array -intersect-ukey.php , чтобы вы могли определить свою собственную функцию для сопоставления ключей и / или значений.

2
ответ дан 8 December 2019 в 18:37
поделиться

Просто вариант ответа Гамбо, должен быть более эффективным, поскольку тесты ключей выполняются непосредственно перед входом в цикл.

$intersection = array_intersect($a, array_keys($b));
$result=array();
foreach ($intersection as $key) {
    $result[$k]=$b[$k];
}
0
ответ дан 8 December 2019 в 18:37
поделиться

Выполните простой foreach , чтобы перебрать первый массив и получить соответствующие значения из второй массив:

$output = array();
foreach ($a as $key) {
    if (array_key_exists($key, $b)) {
        $output[$key] = $b[$key];
    }
}
1
ответ дан 8 December 2019 в 18:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: