一 php foreach 数组添加新属性

 

之前没注意这个问题,今天发现通过 foreach 遍历数组时,新增的属性并没有添加到数组中。

foreach ($tags as $tag) {
$tag["name"] = "new name";
}

//解决方法一:使用 array item 引用

 

foreach ($tags as &$tag) {

    $tag["name"] = "new name";

}

 

//解决方法二

 

foreach ($tags as $index => $tag) {

    $tags[$index]["name"] = "new name";

}

 

 

PHP 分割字符串时指定多个分隔符

 

在使用 PHP Laravel 实现博客文章打多标签的功能,输入时标签以英文逗号为分隔符。

但是 PHP 的字符串分割函数 explode 只支持单个分隔符:

$tags = explode(",", $tags_str);

这样做不能兼容中文逗号,因为在输入中文标签时很容易误输入中文逗号。

所以使用正则的方式来分割:

>>> $tags_str = "php, Kotlin, 安卓, 网站";
=> "php, Kotlin, 安卓, 网站"
>>> preg_split( "/(,|,)/", $tags_str);
=> [
"php",
" Kotlin",
" 安卓",
" 网站",
]