Скажем, у меня есть строка.
$string = red,green,blue,yellow,black;
Теперь у меня есть переменная, которая является позицией слова, которое я ищу.
$key = 2;
Я хочу получить слово с позицией 2. В этом случае ответ будет blue
.
$a = explode( ',', $string ); echo $a[ $key ];
Лучшим способом решить эту проблему было бы преобразование строки в массив с помощью метода explode ().
$string = ...; $string_arr = explode(",", $string); //Then to find the string in 2nd position echo $string_arr[1]; //This is given by n-1 when n is the position you want.
<?php $string = preg_split( '/[\s,]+/', $str ); echo $string[$key];
Это работает, разбивая предложение на слова, основанные на границах слов (пробелы, запятые, периоды и т. Д.). Он более гибкий, чем explode()
, если только вы не работаете с строками с разделителями-запятыми.
Например, если str
= 'Привет, меня зовут собака. Как вы? ', И $key
= 5, вы получите «Как».
Если вы знаете, что ваши слова будут разделены запятыми, вы можете сделать что-то вроде:
$key = 2; $string = "red,green,blue,yellow,black"; $arr = explode(",",$string); echo $arr[$key];
Данный:
$string = 'red,green,blue,yellow,black'; $key = 2;
Затем (<PHP 5.4):
$string_array = explode(',', $string); $word = $string_array[$key];
Тогда (> = PHP 5.4):
$word = explode(',', $string)[$key];