Я хотел бы создать ассоциативный массив в PHP, где ключом является пара строк.
Сначала я рассматривал объединение строк с каким-то уникальным делителем посередине, а затем разделял их позже, но это похоже на хакерский обходной путь для использования пары.
Рассмотрим следующий код:
$andrew = array('Andrew', 'Rasmussen');
$john = array('John', 'Smith');
$container[$andrew] = 15;
$container[$john] = 12;
$pair = array('Andrew', 'Rasmussen');
if (array_key_exists($pair, $container)) {
echo 'true';
} else {
echo 'false';
}
Очевидно, что этот код не будет работать, потому что вы не можете использовать массив в качестве ключа в массиве в PHP. Есть ли хороший способ сделать что-то подобное без объединения и последующего анализа строк?
Редактировать
У меня есть причина хотеть сделать это. У меня есть array(key=string1,value=array(key=string2,value=occurrences))
, и я пытаюсь найти топ-5 (с точки зрения вхождений) пар строк. Поэтому я в основном пытаюсь сгладить это в одномерный массив, а затем отсортировать его, чтобы я мог легко получить верхнюю пятерку. Но для этого мне понадобится возможность извлекать строки отдельно после того, как я отсортировал, что может быть сделано с помощью алгоритма делителя, описанного выше, но это не является предпочтительным, поэтому я прошу альтернативу.