массив с тремя элементами

вопросы и ответы по использованию PHP
Ответить
stalin_alex
Сообщения: 19
Зарегистрирован: 03 фев 2021, 12:39

массив с тремя элементами

Сообщение stalin_alex » 15 мар 2021, 14:52

ребят подскажите как можно грамотно составить условие с массивом на три элемента. ОЧЕНЬ желательно через хранение в файлах ибо обращение будет с разных скриптов. Очень недобно во всех этих разных скриптах поддерживать актуальность базы данных (массивов с данными)

три элемента это:
1- разгаданный текст, 2- ключеные слова, 3- ответ.
Ключевых слов может быть несколько для одной загадки. Из-за отсутствия стабильного распознавания.

Код: Выделить всё

$textresult = $tesseractOCR->recognize"путь к файлу";

		if (strpos($textresult, "ключевые слова") !== false)
		{
			$answer= "ответ1";
			echo ("\n найден в текущей базе.\n отправлен соответсвующий ответ - " .$answer."\n");
		}
		else if (strpos($textresult, "ключевые слова2") !== false)
		{
			$answer= "ответ2";
			echo ("\n найден в текущей базе.\n отправлен соответсвующий ответ - " .$answer."\n");
		}
		else if (strpos($textresult, "ключевые слова3") !== false)
		{
			$answer= "ответ3";
			echo ("\n найден в текущей базе.\n отправлен соответсвующий ответ - " .$answer."\n");
		}
		else if (strpos($textresult, "ключевые слова4") !== false)
		{
			$answer= "ответ4";
			echo ("\n найден в текущей базе.\n отправлен соответсвующий ответ - " .$answer."\n");
		}
		else if (strpos($textresult, "ключевые слова5") !== false)
		{
			$answer= "ответ5";
			echo ("\n найден в текущей базе.\n отправлен соответсвующий ответ - " .$answer."\n");
		}
		else if ($answer=="0")
		{
			echo ("\n\n В текущей базе не найден :-(\n");
			break;
		}

Аватара пользователя
Support
Site Admin
Сообщения: 1000
Зарегистрирован: 10 апр 2009, 17:45
Контактная информация:

Re: массив с тремя элементами

Сообщение Support » 15 мар 2021, 21:04

можно в текстовый файл записать данные в таком виде:

Код: Выделить всё

разгаданный текст;ключеные слова;ответ
разгаданный текст;ключеные слова;ответ
разгаданный текст;ключеные слова;ответ
разгаданный текст;ключеные слова;ответ
и т.д.
Что бы прочитать его используем функцию файл и потом делим через explode
$arr_data =file("1.txt");

foreach($arr_data as $str)
{
    $arr = explode(";",$str);

    print_r($arr);
}

результат:
Array
(
[0] => разгаданный текст
[1] => ключеные слова
[2] => ответ

)
Array
(
[0] => разгаданный текст
[1] => ключеные слова
[2] => ответ

)
Array
(
[0] => разгаданный текст
[1] => ключеные слова
[2] => ответ

)
Array
(
[0] => разгаданный текст
[1] => ключеные слова
[2] => ответ
)

stalin_alex
Сообщения: 19
Зарегистрирован: 03 фев 2021, 12:39

Re: массив с тремя элементами

Сообщение stalin_alex » 15 мар 2021, 22:54

Скажите, а как быть с надобностью добавлять несколько "ключевые слова" ибо не всегда одинаково распознаётся текст

stalin_alex
Сообщения: 19
Зарегистрирован: 03 фев 2021, 12:39

Re: массив с тремя элементами

Сообщение stalin_alex » 15 мар 2021, 23:06

И ещё вопрос. Скажите а как можно КАПС лог взять в учёт. В случае, если распознанный текст окажется в капслоке, а ключевое слово от него без капс лока

stalin_alex
Сообщения: 19
Зарегистрирован: 03 фев 2021, 12:39

Re: массив с тремя элементами

Сообщение stalin_alex » 15 мар 2021, 23:24

И ещё. правильно - ли я понял, что для каждого добавляемого разгаданного текста, ключевого слова и ответа надо будет добавлять в скрипт новый блок:

Array
(
разгаданный текст
ключевые слова
ответ
)

???

Аватара пользователя
Support
Site Admin
Сообщения: 1000
Зарегистрирован: 10 апр 2009, 17:45
Контактная информация:

Re: массив с тремя элементами

Сообщение Support » 16 мар 2021, 00:24

stalin_alex писал(а):
15 мар 2021, 23:24
И ещё. правильно - ли я понял, что для каждого добавляемого разгаданного текста, ключевого слова и ответа надо будет добавлять в скрипт новый блок:

Array
(
разгаданный текст
ключевые слова
ответ
)

???
Это у вас отдельная строка в файле в виде разгаданный текст;ключеные слова;ответ

Блок array это вывод в панели отладки. это результат работы функции print_r($arr);

Аватара пользователя
Support
Site Admin
Сообщения: 1000
Зарегистрирован: 10 апр 2009, 17:45
Контактная информация:

Re: массив с тремя элементами

Сообщение Support » 16 мар 2021, 00:25

stalin_alex писал(а):
15 мар 2021, 23:06
И ещё вопрос. Скажите а как можно КАПС лог взять в учёт. В случае, если распознанный текст окажется в капслоке, а ключевое слово от него без капс лока
Приводите всё к одному регистру и сравнивайте в нём, к примеру к нижнему.

Аватара пользователя
Support
Site Admin
Сообщения: 1000
Зарегистрирован: 10 апр 2009, 17:45
Контактная информация:

Re: массив с тремя элементами

Сообщение Support » 16 мар 2021, 00:27

stalin_alex писал(а):
15 мар 2021, 22:54
Скажите, а как быть с надобностью добавлять несколько "ключевые слова" ибо не всегда одинаково распознаётся текст
В этом случае вы можете сделать формат файла таким:

Код: Выделить всё

разгаданный текст;ключеные слова1,ключеные слова2,ключеные слова3;ответ
и тогда код ваш будет :
$arr_data =file("1.txt");

foreach($arr_data as $str)
{
    $arr = explode(";",$str);

    $arr_keys = explode(",", $arr[1]);
    
    // основной массив 
    print_r($arr);
    // массив с ключами
    print_r($arr_keys);
}

stalin_alex
Сообщения: 19
Зарегистрирован: 03 фев 2021, 12:39

Re: массив с тремя элементами

Сообщение stalin_alex » 16 мар 2021, 00:37

Support писал(а):
16 мар 2021, 00:25
stalin_alex писал(а):
15 мар 2021, 23:06
И ещё вопрос. Скажите а как можно КАПС лог взять в учёт. В случае, если распознанный текст окажется в капслоке, а ключевое слово от него без капс лока
Приводите всё к одному регистру и сравнивайте в нём, к примеру к нижнему.
Спасибо за помощь, но ещё был бы рад, если подскажете как это сделать)
Я про сведение в нижний регистр

P.S. всё. увидел в соседней теме. спасибо

Ответить