我有一个像这样的字符串:
" United States"
,我希望它是"United States"
出于其他原因,我使用以下命令替换字符串,但是我不知道如何告诉它仅删除第一个空白空间:
$title = usp_get_meta(false, 'usp-custom-8');
update_post_meta( $post->ID, 'usp-custom-8', str_replace('n Argentinan', 'Argentina', $title ));
我知道我可以使用类似$str = ltrim($str);
之类的东西,但是我不确定如何将其放置在那里,并且我不想冒险运行循环并造成灾难,因为它将遍历我的整个数据库。
从理论上讲,我也可以在其他代码中运行它:
$stateList = usp_get_meta(false, 'usp-custom-8');
$stateList = ltrim($stateList);
$stateList = explode(',', $stateList);
foreach($stateList as $state) {
array_push($countries, $state);
}
但是我得到Array
作为值。在此处使用ltrim
时。
所以我要么让它作为第一个示例运行循环,要么作为最后一段代码运行,但是如何从字符串中删除第一个空白空间?
答案 0 :(得分:5)
我不确定您要做什么,但是从理论上讲,您可以将array_map()
与ltrim()
函数一起使用,甚至可以将trim()
用作自变量 之后爆炸$stateList
,即(未测试):
$stateList = array_map("ltrim", explode(',', $stateList));
# loop...
答案 1 :(得分:4)
使用let nsObject1 = Nsobject()
let nsObject2 = Nsobject()
let nsObjectArray1 = [nsObject1]
let nsObjectArray2 = [nsObject2]
let _ = nsObjectArray1 == nsObjectArray2
let object1 = Object()
let object2 = Object()
let objectArray1 = [object1]
let objectArray2 = [object2]
let _ = objectArray1 == objectArray2
函数http://php.net/manual/en/function.array-map.php
array_map
答案 2 :(得分:4)
建议的ltrim方法不会删除第一个空白空间。相反,它将删除字符串开头的所有空格,即ltrim("foo bar")
将返回foo bar
,而不是foobar
(它不会删除字符串中的第一个空白)
请使用preg_replace和$ limit $str=preg_replace("/\s/u","",$str,1);
-不管第一个空格在哪里,都会删除$ str中的第一个空格。
update_post_meta( $post->ID, 'usp-custom-8', preg_replace("/\s/u","",$title,1));
答案 3 :(得分:3)
您可以循环修剪并把它们放到一个新的数组中,就像这样:
$countries = [' United States', 'Argentina', ' France'];
$countriesClean = array();
foreach($countries as $country) {
$cleanCountry = ltrim($country);
array_push($countriesClean, $cleanCountry);
}
在这种情况下,阿根廷是唯一不需要清除的国家/地区名称。 Demo
答案 4 :(得分:2)
或者您可以只使用preg_replace
:
$stateList = " United States , Argentina , France ";
$stateList = preg_replace("#\s*,\s*#", ',', trim($stateList) );
print_r(explode(",", $stateList));
输出为:
Array
(
[0] => United States
[1] => Argentina
[2] => France
)
答案 5 :(得分:1)
如果 $ title 是字符串,而您只想删除字符串开头的空格,则可以尝试...。
代码
$title = " United States";
if(strpos($title," ") === 0 ){
$title = substr($title, -(strlen($title)-1));
}
var_dump($title);
我正在使用 === 严格检查,有时 strpos 返回false。
输出
string(13) "United States"