У меня есть такая строка:
Quaint village location, seaside views, four bedrooms
Мне нужно сделать следующее:
Так, например, приведенная выше строка становится:
array(
[0] => 'Quaint village location',
[1] => 'Seaside views',
[2] => 'Four bedrooms',
)
Я начал этот блок кода с помощью trim
, explode
а также ucfirst
но я не думаю, что я сделаю это очень эффективным способом.
iif(get_field('property_information') != NULL){
$raw_facilities_list = explode(",", get_field('property_information'));
$other_facilities_list = [];
foreach($raw_facilities_list as $facility){
$facility = trim($facility);
$facility = ucfirst($facility);
array_push($other_facilities_list,$facility);
}
$property['extra_features'] = $other_facilities_list;
echo '<pre>';
var_dump($property);
echo '</pre>';
}
Каков наиболее эффективный способ выполнить эти 3 задачи?
Просто используя array_map
вместе с explode
$property['extra_features'] = array_map(function($v){
return ucfirst(trim($v));
},explode(',',$str));
Выход:
array(
[0] => 'Quaint village location',
[1] => 'Seaside views',
[2] => 'Four bedrooms',
)
Ты делаешь это правильно; Вы можете разделить его на несколько частей:
function sanitize($string){
return ucfirst(trim($string));
}
function treat($sentence)
{
return join(",",(array_map('sanitize',explode(",",$sentence))));
}
$array[] = treat("Quaint village location, seaside views, four bedrooms");