Сравнить 2 строки в PHP

#php #wordpress #for-loop #strpos

#php #wordpress #for-цикл #strpos

Вопрос:

У меня проблемы, потому что я не могу понять, как найти свой ответ. Я создаю веб-сайт WordPress, и у меня есть поисковая система

Я создал опцию в своей панели администратора и написал код для записи в моей таблице параметров, но теперь моя проблема

сначала я беру свои параметры из своей базы данных с

 $mysynonymvalue = get_option( 'synonym-custom' );
  

Я уточняю, что он возвращает мне что-то вроде этого (манго, яблоко, банан) (это, конечно, пример)

Мой URL-адрес выглядит примерно так :

http://supserwebsite/wordpress/?sfid=2675amp;_sf_s=toto

Или это

http://superwebsite/wordpress/?sfid=2675amp;_sf_s=virtualisation облачные разработки

итак, я создал переменную для обработки запросов

 $motsclefs3= $_GET['_sf_s'];
  

Теперь я хочу сравнить строку $ mysynonymvalueconvert с $ motsclefs3, чтобы определить, совпадает ли она, поэтому я пишу

                             if (strpos ($mysynonymvalue, $motsclefs3) ){
                            echo '<script >
                                $(document).ready(function(){
                                    $(".vc-tabs-li:nth-child(2)").get(0).click();
                                });
                            </script>';
                            }                           
                            else{
                                echo '
                        <script >
                                $(document).ready(function(){
                                    $(".vc-tabs-li").get(0).click();
                                });
                            </script>';

                            };
                        };                  
  

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

И это работает не так хорошо, потому что только с одной буквой это возвращает совпадение (например, ‘a’)

Есть решение? Спасибо

Комментарии:

1. Почему вы используете strpos в качестве проверки равенства? === чище и быстрее. Кроме того, ваши операторы echo закомментированы, но, похоже, они занимают две строки, что означает, что ваш фрагмент PHP недействителен.

2. Я удалил foreach, который на самом деле был бесполезен, но я использую strpos для сравнения строковых элементов, потому что в $ mysynonymvalue может быть несколько данных, а не только один, я также переработал свое echo, но все равно не то, что я ожидал ^^ ‘

3. Итак, у вас есть mango, apple, banana строковое значение, и теперь вы пытаетесь проверить, содержит ли оно f.e. apple ? Ну тогда explode первое значение, чтобы вы получили правильный массив с отдельными словами, а затем использовали in_array для проверки.

4. На самом деле я попробовал что-то вроде $myvariable = explode(‘ ‘, $ motsclefs3); и переработать мое «if», чтобы оно выглядело примерно как » if (in_array($myvariable, $ mysynonymvalue)) «, но результат тот же

Ответ №1:

* предоставленные URL-адреса недоступны.

Решение: Создайте словарь опций из базы данных, а затем выполните поиск по элементу, который вы ищете.

Комментарии:

1. Это пример URL, я не могу предоставить вам доступ к ^^’ извините

2. я не могу просто сравнить эти два элемента, не создавая этого? Я также пытался что-то создать для массивов моих результатов из $ mysynonymvalue, но сравнение 2 массивов, похоже, не работает из-за данных, которые не имеют одинакового номера в каждом результатах

3. Прямое сравнение массива не сработает. если у вас есть array_1 и array_2, тогда начните повторять array_2 и проверяйте во время итерации, существует ли элемент или соответствует в array_1, если существует, тогда разорвите цикл. Я думаю, вам нужно поэлементное сравнение. (поправьте меня, если я ошибаюсь).

Ответ №2:

Пока что я немного продвинулся!Итак, я пришел с этим

У меня все еще есть

 $mysynonymvalue = get_option( 'synonym-custom' );
$mysynonymvalueconvert = preg_split('/[,] /',$mysynonymvalue);
  

Чтобы извлечь мои слова из моей базы данных и преобразовать их в массив.
(смысл этого в том, чтобы получить элементы, которые были написаны пользователем в другом месте на панели администратора WordPress)

У меня также все еще есть

  $motsclefs3= $_GET['_sf_s'];
  

Чтобы получить мои фактические запросы (которые помогут мне сравнить). Я уточняю, что он возвращает мне строку. Чтобы быть более конкретным, URL, подобный этому (http://mywebsite/wordpress/?sfid=2675amp;_sf_s=examen ) верните мне (в строке) «examen».

Теперь моя точка зрения по-прежнему заключается в сравнении, если

   $motsclefs3;
  

находится внутри

  $mysynonymvalueconvert
  

Итак, я создал цикл «for», подобный этому

 for ($i = 0;  $i <= count($mysynonymvalueconvert); $i  ){                                                    
                                if(in_array($motsclefs3, $mysynonymvalueconvert)){                                 
                                    echo'yes';
                                    break;
                               }
                               else{
                                    echo 'no';
                                    break;
                               };
                            };
  

Но я все еще заблокирован, это возвращает «да», только если оно совпадает с первым элементом из

  $mysynonymvalueconvert
  

Итак, есть идеи, которые могут мне помочь?

Спасибо!

Комментарии:

1. Неважно, ребята! Моя проблема была в моей базе данных ^^’. На самом деле приведенный выше код верен, но в моей базе данных не были зарегистрированы правильные данные. Итак, я просто меняю свою базу данных, чтобы она работала должным образом, и она работает хорошо, извините за беспокойство и спасибо за ваши ответы!