Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Преобразование строки в массив слов на PHP

Delphi , Прочее , PHP скрипты

Преобразование строки в массив слов на PHP

Вариант 1 с использыванием strtok

<?php
//преобразование $_POST['find'] в массив слов
    $str =$_POST['find'];
    $srt_arr = array();
    $srt_arr1 =strtok($str, " ");
    $srt_arr[] = $srt_arr1;
       while($srt_arr1)
       {
        $srt_arr1 =strtok(" ");//очень тонкий момент: не нужно передавать какую именно строку мы разделяем - php уже в курсе
        if ($srt_arr1) // не добавляем в массив пустые строки
        {$srt_arr[] = $srt_arr1;}
       };
    print_r($srt_arr);//распечатываем результат
?>

Вариант 2 с использыванием explode (из Руководства по PHP)

<?php
// Пример 1
$pizza  "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces explode(" "$pizza);
echo 
$pieces[0]; // piece1
echo $pieces[1]; // piece2

// Пример 2
$data "foo:*:1023:1000::/home/foo:/bin/sh";
list(
$user$pass$uid$gid$gecos$home$shell) = explode(":"$data);
echo 
$user// foo
echo $pass// *

?>

 

Автор KAN

Пример разделения строки на массив слов!

Оба варианта корректны и достигают одного и того же результата - разделения входной строки $_POST['find'] на массив слов. Я предоставлю некоторые дополнительные комментарии и предложения.

Вариант 1: Использование strtok()

Код использует strtok() для разделения входной строки на отдельные слова, разделенные пробелами. Главное внимание стоит обратить на то, что strtok() модифицирует оригинальную строку, поэтому вам нужно передать пустую строку ("" или " ") как второй аргумент, чтобы сбросить позицию токена.

Цикл повторяется до тех пор, пока strtok() не вернет не пустую строку, что означает, что больше нет слов для разделения. Условие if ($srt_arr1) проверяет, является ли текущее слово не пустым перед добавлением его в массив.

Вариант 2: Использование explode()

Этот вариант использует explode() для разделения входной строки на массив слов, также разделенных пробелами. Разница в том, что explode() не модифицирует оригинальную строку и возвращает новый массив.

Примеры, предоставленные в руководстве PHP, демонстрируют использование explode() с различными разделителями (например, " " для пробелов или ":" для двоеточий).

Сравнение и предложения

Оба варианта работают, но есть некоторые соображения:

  • strtok() более гибок, потому что позволяет указать разделитель в виде строки. Однако он модифицирует оригинальную строку.
  • explode() проще использовать и не модифицирует оригинальную строку.

Если вам нужно разделить строку на массив слов с конкретным разделителем (например, запятыми или точками с запятой), то strtok() может быть более подходящим выбором. Если вы только хотите разделить строку на слова, разделенные пробелами, то explode() достаточен. В плане эффективности оба функции имеют схожие характеристики.

Альтернативное решение

Если вы хотите сделать код более компактным и читаемым, можно использовать инициализацию массива с помощью цикла:

$str = $_POST['find'];
$str_arr = [];
foreach (explode(' ', $str) as $word) {
    if ($word !== '') { // игнорируем пустые строки
        $str_arr[] = $word;
    }
}
print_r($str_arr);

Эта APPROACH использует функцию explode() для разделения строки на массив слов и затем iterates over resulting array using a foreach loop. Условие if ($word !== '') проверяет, является ли текущее слово не пустым перед добавлением его в массив.

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

Преобразование строки в массив слов на PHP может выполняться с помощью функций strtok и explode, которые позволяют разделить строку на отдельные слова и элементы соответственно.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: PHP скрипты ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 12:17:49/0.005728006362915/1