ksider
@ksider
Я сварщик не настоящий

Как разбить строку в массив?

Как разбить строку
$name = "Ньютон И.И. (Тринити колледж, Кембридж)";
в массив
[0] => Ньютон И.И. 
[1] => Тринити колледж, Кембридж
  • Вопрос задан
  • 575 просмотров
Решения вопроса 2
sergiks
@sergiks Куратор тега PHP
♬♬
Можно использовать регулярное выражение (раз такой тег стоит в вопросе). Буквально «всё, что угодно, затем пробел-со-скобкой, потом всё до скобки, скобка». Из полученного массива выкинуть нулевой элемент, где содержится вся строка целиком:
preg_match('/^(.+)\ \((.+)\)/', $name, $matches);
array_shift($matches);
$matches; /*Array
(
    [0] => Ньютон И.И.
    [1] => Тринити коледж, Кембридж
)*/


Можно и просто отрезать последний символ, а затем разбить в массив, используя в качестве разделителя пробел-с-открывающей-скобкой : )
без регулярных выражений
$name = "Ньютон И.И. (Тринити коледж, Кембридж)";
	$name = substr($name, 0, -1);
	$result = explode(' (', $name);
	print_r($result);
Ответ написан
@Mysterion
$name = 'Ньютон И.И. (Тринити коледж, Кембридж)';
$regex = '/(.+)\((.*)\)/m';
preg_match_all($regex, $name, $matches, PREG_SET_ORDER, 0);
if($matches) {
    foreach($matches as $match) {
        echo "{$match[1]}\n";
        echo "{$match[2]}\n";
    }
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы