技术笔记phpPHP好用的内建函数推荐 常用函数的使用场景
Xtongin_array — 检查数组中是否存在某个值
文档:https://www.php.net/manual/zh/function.in-array
常用在一些简单验证上,如:
1 2 3 4 5 6 7 8
| $user_auth = [1,3,5,6,7];
$need_auth = 9;
if(!in_array($need_auth, $user_auth)){ err('无权查看!'); }
|
explode — 使用一个字符串分割另一个字符串
文档:https://www.php.net/manual/zh/function.explode.php
数据库经常会在一个字段中储存用逗号’,’(或其他字符)分割的一组数据,用 explode 可以方便地将其转换为数组,同时可以配合 in_array 进行数据验证,如:
1 2 3 4 5
|
if(in_array($id, explode(',', $parent->parent_ids))) { return $this->err(Errors::DEPT_PARENT_CANT_BE_CHILDREN); }
|
explode
对应的相反操作是 implode
。implode 可以将数组转换成字符串进行存储。
前端提交来的附件id数组,我们可以转成逗号分割的字符串储存到数据库字段中。
array_column — 返回输入数组中指定列的值
文档:https://www.php.net/manual/zh/function.array-column.php
当要从二维数组中获取某一个 key 的所有值组成一个数组时,就可以使用这个函数。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| $students = [ [ 'id' => 1, 'name' => '张三', 'age' => 14, ], [ 'id' => 4, 'name' => '李四', 'age' => 12, ], [ 'id' => 34, 'name' => '王五', 'age' => 13, ], [ 'id' => 55, 'name' => '赵六', 'age' => 14, ], ];
$student_names = array_column($students, 'name');
$new_student = [ 'name' => '李三', 'age' => 15, ]; if(in_array($new_student['name'], $student_names)) { echo '巧了,本班也有一名同学叫:' . $new_student['name']; }
|
array_values — 返回数组中所有的值
文档:https://www.php.net/manual/zh/function.array-values
通常在遍历处理数组内容时,使用 unset()
去除不需要的元素后,会导致数组的索引不连续,写接口返回给前端就会变成对象;要避免这种情况,可以在这里使用 array_values
进行索引重建。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| print_r($list);
Array( [0] => 'apple' [4] => 'car' [5] => 'google' [7] => 'youtube' )
$list = array_values($list);
Array( [0] => 'apple' [1] => 'car' [2] => 'google' [3] => 'youtube' )
|
参考资料