wp_parse_list()WP 5.1.0

Разбивает строку на массив значений разделенных символами ,   \t \n: запятая, пробел, табуляция, перенос строки.

Пустые значения полученного массива удаляются.

Если передать массив, то он будет возвращен без изменений - функция обрабатывает только строки.

  • Используйте wp_parse_id_list(), когда нужно забить строку с числами, на массив уникальных чисел.
  • Используйте wp_parse_slug_list(), когда нужно забить строку со строками, на массив уникальных строк.
1 раз — 0.000001 сек (скорость света) | 50000 раз — 0.04 сек (скорость света) | PHP 7.2.16, WP 5.1.1

Хуков нет.

Возвращает

Массив. Значения полученные из строки.

Использование

wp_parse_list( $list );
$list(массив/строка) (обязательный)
Список значений разделенных запятыми или пробелами. Если передать массив, то он вернётся без изменений.

Примеры

0

#1 Демонстрация работы

$str_ids = ",1  2  , foo   4 bar,   6 \n /asd/asd \r\n !@#$ \t tab";
$ids = wp_parse_list( $str_ids );

/*
Array
(
	[0] => 1
	[1] => 2
	[2] => foo
	[3] => 4
	[4] => bar
	[5] => 6
	[6] => /asd/asd
	[7] => !@#$
	[8] => tab
)
*/
$str  = 'M-11, М-11 some:val «Москва - Санкт-Петербург», Вышний Волочек, Газель';
$list = wp_parse_list( $str );

/*
Array
(
	[0] => M-11
	[1] => М-11
	[2] => some:val
	[3] => «Москва
	[4] => -
	[5] => Санкт-Петербург»
	[6] => Вышний
	[7] => Волочек
	[8] => Газель
)
*/
$str  = '
Первая строка
Вторая
Третья
';
$list = wp_parse_list( $str );

/*
Array
(
	[0] => Первая
	[1] => строка
	[2] => Вторая
	[3] => Третья
)
*/

Строка без данных или пустая строка:

$ids = wp_parse_list( ',' ); // array( )
$ids = wp_parse_list( '' );  // array( )

Массив вернётся без изменений:

$arr = [ 'foo', 5, '', 'bar' ];
$parsed = wp_parse_list( $arr );

/*
Array
(
	[0] => foo
	[1] => 5
	[2] =>
	[3] => bar
)
*/
0

#2 Еще пример того как работает функция

$str = 'cookie-policy, privacy-policy, terms-and-conditions, nutritional-page,  

campaigns/tour-virtual/,   campaigns/virtual-tasting/,  campaigns/sunsetdros21uk/, 

campaigns/sunsetdros21uk/venues/, campaigns/sunsetdros21uk/terms-and-conditions/,
campaigns/sunsetdros21scotland/,

campaigns/sunsetdros21scotland/venues/,

campaigns/sunsetdros21scotland/terms-and-conditions/,
campaigns/easyjet/instant-win/,
campaigns/surveyuk21/';

$list = wp_parse_list( $str );

print_r( $list );

/*
Array
(
	[0] => cookie-policy
	[1] => privacy-policy
	[2] => terms-and-conditions
	[3] => nutritional-page
	[4] => campaigns/tour-virtual/
	[5] => campaigns/virtual-tasting/
	[6] => campaigns/sunsetdros21uk/
	[7] => campaigns/sunsetdros21uk/venues/
	[8] => campaigns/sunsetdros21uk/terms-and-conditions/
	[9] => campaigns/sunsetdros21scotland/
	[10] => campaigns/sunsetdros21scotland/venues/
	[11] => campaigns/sunsetdros21scotland/terms-and-conditions/
	[12] => campaigns/easyjet/instant-win/
	[13] => campaigns/surveyuk21/
)
*/

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

С версии 5.1.0 Введена.

Код wp_parse_list() WP 6.5.2

function wp_parse_list( $input_list ) {
	if ( ! is_array( $input_list ) ) {
		return preg_split( '/[\s,]+/', $input_list, -1, PREG_SPLIT_NO_EMPTY );
	}

	// Validate all entries of the list are scalar.
	$input_list = array_filter( $input_list, 'is_scalar' );

	return $input_list;
}