Najprościej? Zrób sobie powiązania między jednostką chorobową a objawem. Dobrze swoją rolę tutaj spełnia baza danych i połączenie wiele-do-wielu. Jedna choroba może mieć wiele objawów, a jeden objaw pasować może do wielu chorób. To jak to zapisać i odczytać to kwestia własnego pomysłu i tego czym realizujesz sprawdzenie. Jeśli baza danych to podana przeze mnie możliwość jest wygodna bo wyszukujesz konkretne objawy i grupujesz je po chorobie, dając wyżej te, które mają większa ilość pasujących objawów. Jako że PHP-owa tablica może mieć jedynie jeden taki sam klucz, to możesz choćby utworzyć tablicę gdzie choroba to będzie klucz a jej objawy to wartości kolejnej tablicy. Można użyć ID by zająć ciut mniej miejsca i odrobinę szybciej wyszukiwać. Przykładowo:
['0'] => 'Wyrostek',
['1'] => 'Grypa',
['2'] => 'Zatrucie pokarmowe'
);
['0'] => 'Ból brzucha',
['1'] => 'Gorączka',
['2'] => 'Omdlenia',
['3'] => 'Wymioty',
['4'] => 'Pocenie się',
['5'] => 'Osłabienie ogólne',
['6'] => 'Dreszcze'
);
['1'] => array( 1, 4, 5, 6 ), ['2'] => array( 0
, 2
, 3
) );
Teraz jedynie musisz w pętli sprawdzać sobie objawy i dopisywać sobie znalezione choroby, przy czym jeśli objawów więcej to dopisujesz albo ilość trafionych objawów, albo ich nazwy. Jak najprościej? Przekazujesz do skryptu $objawy zawierającą identyfikatory objawów
foreach( $laczenia AS $id_ch => $choroba ) {
foreach( $objawy AS $id_objawu ) {
if( in_array( $id_objawu, $choroba ) ) { $rozpoznane[ $id_ch ][] = $id_objawu;
}
}
}
Na koniec jedynie sprawdzasz czy tablica jest pusta czy nie. Jeśli nie to jaka choroba i jaki objaw wyciągniesz już prostym podstawieniem z tablic chorób i objawów.