Как преобразовать строку в массив php
Перейти к содержимому

Как преобразовать строку в массив php

  • автор:

Преобразовать строку в массив на php?

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

  • Вопрос задан более года назад
  • 93 просмотра

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

Простой 7 комментариев

Fernus

Не понятно. но очень интересно.

Compolomus

Дмитрий @Compolomus Куратор тега PHP
Можно просто записать это в файл

file_put_contents('data.php', "

Использовать как массив
$arr = include 'data.php';
Должно получиться

Дмитрий, не должно получиться: запятых нет, кавычек нет, пустые значения, и константы вместо нормальных ключей. Не взлетит.

Как перевести строку в массив, помогите! PHP

Я новичок в php, помогите пожалуйста перевести строку такого вида:

array( [58] => 2, [55] => 3, [48] => 1, ) 

Отслеживать

5,004 2 2 золотых знака 12 12 серебряных знаков 25 25 бронзовых знаков

задан 30 мая 2021 в 10:22

5 4 4 бронзовых знака

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

print_r(json_decode('', true)); 

Отслеживать

ответ дан 30 мая 2021 в 10:27

Алексей Шиманский Алексей Шиманский

73.6k 12 12 золотых знаков 93 93 серебряных знака 182 182 бронзовых знака

  • php
  • массивы
    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.5.3.8609

Функция str_split

Функция str_split разбивает строку в массив. Первым параметром она принимает строку, а вторым - количество символов в элементе массива. К примеру, если второй параметр задать как 3 - функция разобьет строку в массив так, чтобы в каждом элементе массива было по 3 символа.

Синтаксис

str_split(строка, количество символов в элементе массива);

Пример

Давайте разобьем строку по 2 символа в элементе массива (обратите внимание на то, что последнему элементу не хватило символов и там их не 2 , а один):

Результат выполнения кода:

Пример

Давайте разобьем строку по 3 символа в элементе массива:

Результат выполнения кода:

Пример . Применение

Давайте найдем сумму цифр числа. Для этого разобьем число в массив с помощью str_split и сложим элементы этого массива с помощью array_sum :

Результат выполнения кода:

Смотрите также

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

str_split

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

Ошибки

Если параметр length меньше 1 , будет выброшена ошибка ValueError .

Список изменений

Версия Описание
8.2.0 Если параметр string не задан, теперь возвращается пустой массив ( array ). Ранее возвращался массив ( array ), содержащий одну пустую строку
8.0.0 Теперь если параметр length меньше 1 , будет выброшена ошибка ValueError ; ранее, вместо этого выдавалась ошибка уровня E_WARNING , а функция возвращала false .

Примеры

Пример #1 Пример использования функции str_split()

$str = "Hello Friend" ;

$arr1 = str_split ( $str );
$arr2 = str_split ( $str , 3 );

print_r ( $arr1 );
print_r ( $arr2 );

Результат выполнения приведённого примера:

Array ( [0] => H [1] => e [2] => l [3] => l [4] => o [5] => [6] => F [7] => r [8] => i [9] => e [10] => n [11] => d ) Array ( [0] => Hel [1] => lo [2] => Fri [3] => end )

Примечания

Замечание:

Функция str_split() производит разбивку по байтам, а не по символам, в случае использования строк в многобайтных кодировках. Используйте функцию mb_str_split() , чтобы разбить строку на кодовые точки.

Смотрите также

  • mb_str_split() - Возвращает массив символов заданной многобайтовой строки
  • chunk_split() - Разбивает строку на фрагменты
  • preg_split() - Разбивает строку по регулярному выражению
  • explode() - Разбивает строку разделителем
  • count_chars() - Возвращает информацию о символах, входящих в строку
  • str_word_count() - Возвращает информацию о словах, входящих в строку
  • for

Improve This Page

User Contributed Notes 3 notes

1 year ago

The function str_split() is not 'aware' of words. Here is an adaptation of str_split() that is 'word-aware'.

$array = str_split_word_aware (
'In the beginning God created the heaven and the earth. And the earth was without form, and void; and darkness was upon the face of the deep.' ,
32
);

/**
* This function is similar to str_split() but this function keeps words intact; it never splits through a word.
*
* @return array
*/
function str_split_word_aware ( string $string , int $maxLengthOfLine ): array
if ( $maxLengthOfLine <= 0 ) throw new RuntimeException ( sprintf ( 'The function %s() must have a max length of line at least greater than one' , __FUNCTION__ ));
>

$lines = [];
$words = explode ( ' ' , $string );

$currentLine = '' ;
$lineAccumulator = '' ;
foreach ( $words as $currentWord )

$currentWordWithSpace = sprintf ( '%s ' , $currentWord );
$lineAccumulator .= $currentWordWithSpace ;
if ( strlen ( $lineAccumulator ) < $maxLengthOfLine ) $currentLine = $lineAccumulator ;
continue;
>

// Overwrite the current line and accumulator with the current word
$currentLine = $currentWordWithSpace ;
$lineAccumulator = $currentWordWithSpace ;
>

if ( $currentLine !== '' ) $lines [] = $currentLine ;
>

array( 5 ) [ 0 ]=> string ( 29 ) "In the beginning God created "
[ 1 ]=> string ( 30 ) "the heaven and the earth. And "
[ 2 ]=> string ( 28 ) "the earth was without form, "
[ 3 ]=> string ( 27 ) "and void; and darkness was "
[ 4 ]=> string ( 27 ) "upon the face of the deep. "
>

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

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