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