Я знаю, что на этот вопрос здесь уже был дан ответ, но различные функции, предложенные в других вопросах, мне не помогли - и я попробовал несколько.
Например, у меня есть эта строка с тремя именами, которая выводится из моей базы данных каждый раз, когда она загружается:
$string = "Joe Hansen, Carl Clarkson Clinton, Miranda Cobweb Fisher-Caine";
Я только хочу, чтобы он выводил:
$string = "Joe, Carl, Miranda";
Я пробовал это: щелкнуть - но он выводит имя только в некоторых ситуациях, а не каждый раз. Есть ли простое решение для этого? Я также пробовал взорваться и взорваться, но это тоже не сработало.
explode() по запятой, explode() каждый взорванный элемент по пробелу, взять первый элемент из каждого
kerbholz, я тоже пробовал. Проблема, с которой я столкнулся, заключалась в том, что вы не можете взорвать уже взорванную строку, поскольку она содержит массив?
@Kerbholz имел в виду foreach (explode() by comma) { explode() by space }
Ник, я понял. Собираюсь дать ему шанс. Я вижу, что этот вопрос был отклонен довольно быстро. Жаль, что здесь так мало места, чтобы задавать вопросы, когда вы уже пробовали разные решения и не заставили их работать. На самом деле не помогает людям, которые плохо знакомы с программированием и хотят учиться.
Что вам следовало сделать, чтобы избежать голосования против, так это опубликовать код, который вы уже пробовали. Люди, вероятно, просто предположили, что вы не приложили никаких усилий для решения этой проблемы.
kerbholz, понятно. Я выложу еще несколько примеров, которые попробовал в следующий раз. Спасибо за внимание.






Что-то вроде этого?
<?php
$string = "Joe Hansen, Carl Clarkson Clinton, Miranda Cobweb Fisher-Caine";
$names = explode(",", $string);
$firstNames = array_map(function($name) {
$split = explode(" ", trim($name));
return reset($split);
}, $names);
echo implode(", ", $firstNames);
Отличный ответ, спасибо! Отметьте свой ответ как решение, если он доступен, так как вы были первым.
Сначала вы можете строку explode() с разделением запятой ,. Затем пройдите по петле.
и получить имя в массиве с помощью substr(), а затем взорвать с помощью ,.
$string = "Joe Hansen, Carl Clarkson Clinton, Miranda Cobweb Fisher-Caine";
$names = explode(",", $string);
$firstNames = array();
foreach($names as $name){
$firstNames[] = substr(trim($name), 0, strpos(trim($name), " "));
}
echo implode(", ", $firstNames);
Сначала взорвите строку на ,, пройдитесь по массиву, затем вставьте элементы в новый массив и взорвите его.
$string = "Joe Hansen, Carl Clarkson Clinton, Miranda Cobweb Fisher-Caine";
$new_string=explode(",",$string);
$slipt_arr=explode(" ",$new_string);
$final_arr=array();
foreach ($new_string as $value)
{
$elements=array_filter(explode(" ",$value));
array_push($final_arr,current($elements));
}
echo implode(", ",$final_arr);
Ваш ответ будет более полезным для других пользователей, если вы объясните, почему они могут предпочесть ваш подход остальным 4 ответам.
ты что-нибудь пробовал?