Длина строки и массива в PHP

    7 комментариев 962

Узнать длину строки и массива в PHP

Привет. В PHP довольно часто приходится работать со строками и массивами и почти во всех случаях требуется узнать их длину (length). Вполне типичная ситуация и для нее есть встроенные функции в PHP. Но есть некоторые нюансы, к примеру то, что одна из функций, которая показывает длину строки — srtlen считает не количество символов в тексте, а количество байт, который занимает каждый символ. Если латинский символ занимает 1 байт, то на кириллице он займет 2 байта. Об этом я же упоминал в статье по теме: как обрезать текст по количеству слов и символов. Но сейчас постараемся рассмотреть некоторые примеры более детально.

Узнать длину строки в PHP

Первая функция, которая будет вычислять длину строки в PHP, будет strlen.

1
2
3
$str = "Hello World";
echo strlen($str);
// 11 символов вместе с пробелом

А если мы напишем примерно то же самое, но на русском, то получим такой вариант:

1
2
3
$str = "Привет Мир";
echo strlen($str);
// 19 символов вместе с пробелом

В этом случае, как я уже говорил ранее, каждый символ займет 2 байта + 1 байт — это пробел. В итоге мы получим не совсем то, что ожидали. Поэтому в случае с кириллицей, чтобы определить длину строки, следует использовать другие функции. Первая — mb_strlen

1
2
3
$str = "Привет Мир";
echo mb_strlen($str);
// 10 символов вместе с пробелом

В этом случае подсчет символов в строки будет одинаковым как на английском, так и на русском языках. Даже если символ занимает несколько байт, то будет посчитан, как один. Так же есть еще одна функция, чтобы узнать длину строки в символах — iconv_strlen

1
2
3
$str = "Привет Мир";
echo iconv_strlen($str);
// 10 символов вместе с пробелом

iconv_strlen учитывает кодировку строки, ее можно указать вторым параметром. Если она не указана, то кодировка будет внутренней. То есть самого файла.

echo iconv_strlen($str, "UTF-8");

Если возникла необходимость проверить длину строки без пробелов, то потребуется дополнительная функция str_replace

1
2
3
4
$str = "Привет Мир";
echo iconv_strlen(str_replace(' ', '', $str));
// 9 символов без пробелов
//iconv_strlen или mb_strlen

Узнать длину массива в PHP

функция, которая позволяет узнать длину массива в PHP — count.

1
2
3
$arr = ["Иван", "Марина", "Сергей", "Алина"];
echo 'Длина массива ' . count($arr) . ' элемента';
// Длина массива: 4 элемента

То же самое будет с массивом, где есть ключи и значения.

1
2
3
$arr = ['name' => "Иван", "city" => "NY", "age" => 34];
echo 'Длина массива ' . count($arr) . ' элемента';
// Длина массива: 3 элемента

Можно резюмировать:

strlen() Подсчет количества байт в строке
mb_stren() Подсчет символов в строке
iconv_strlen() Подсчет символов строки с учетом кодировки
count() Подсчет элементов массива

На этом можно завершить. Теперь вы можете самостоятельно узнать длину строки в PHP и определить длину массива. А если возникнут вопросы, задавайте их в комментариях.

Добавить страницу в закладки

7 комментариев
  1. Очень интересно об этом же: Обрезать текст по количеству слов и символов в JS?

    • Александр Маврин:
      1
      2
      3
      4
      5
      
      text.slice(0, 3); // Обрезать текст до 3-х символов
       
      text = text.split(" "); //Разбить строку на массив через пробел.
      //var cou = text.length; Получить длину массива
      text = text.slice(0, 5); // Обрезаем тест по словам (первые 5)
  2. Как у Вас всё просто.Спасибо! Так что же почитать для повышения понимания JS в области создания калькуляторов?
    Какой источник порекомендуете.
    Вот создал калькулятор расчёта потребляемой э/э и её оплаты на JS. Кое-что и от Вас почерпнул. servis.kharkov.ua/calculytor/

    • Александр Маврин:

      Почитать не скажу что. Самое лучшее, это практика. Можно прочитать все книги по программированию и не написать ни одной строчки кода.

      • Конечно Вы правы. И я так и делаю. Проработан курс А.Лущенко JS 2.0 и 15 видео уроков Практический JS. По каждому из 20 уроков составлен письменный конспект и веду практику. Но, меня интересуют уроки и правила использования методов, параметров и свойств при создании калькуляторов по услугам населению. Вот ещё один из пяти калькуляторов для расчёта цены сварной решётки по их рисункам. servis.kharkov.ua/re/ Сейчас разработал калькулятор с учётом выбора различного материала при разных рисунках.

        • Александр Маврин:

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *