一 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",
     " 安卓",
     " 网站",
   ]