php
-
php数组的一些技巧记录
日常开发过程中,经常会设计到数组的操作,无论是数据库查询还是数据的导入,难免都会使用到,这里将作自己在这过程中的所用所想做一个记录。 去重 比如我们在一组用户数据中,想知道一共有多少company_id,则如是操作:
123456789foreach ($data as $value) {//查看有没有重复项if (isset($res[$value['company_id']])) {//有:销毁unset($value['company_id']);} else {$res[$value['company_id']] = $value['company_id'];}};进一步处理,要去掉主键的话,则可以这样:[crayon-662c2641b78f…
-
PHP通过phpspreadsheet等途径导入Excel日期时的数据处理方法
比如,我们需要录入一个入职日期,在Excel中显示如下: 导入系统后,全部变为了4开头的几位数字,这是为什么呢? 原因很简单,将Excel的时间设置问文本,我们就能看到该日期本来的数值,上图对应的数值为: 要怎么解决呢?进行数据转换就行,这里可以封装方法,或者用第三方的类,但我更推荐通过判断后再进行数据转换,方法如下:[crayon-662c2641b848…
-
PHP中使用switch如何判断null?
前端表单提交时,如果未定义或未填写,后端也没有定制,那么写入数据库,就是Null或者是数据库定时的预设值。 那么,在写逻辑的时候,如何用switch表达这个Null值呢? 逻辑代码如下:
123456789switch($fileInfo->cert_allowed){case 这里的NULL怎么表达?:print ("<script type=\"text/javascript\">");print ("var index = parent.layer.getFrameIndex(window.name);");print ("top.layer.msg('改文件未定义可下载人员!', {shade: 0.3});");print ("parent.layer.close(index);");print ("</script>");die;break;直接case Null? 不行 用‘Null’或者‘’呢? 也不行 那么如何判断? 用0 没错,如果写cas…
-
PHP中的二维数组怎么用foreach修改特定值或批量修改
之前我们已经说过怎么拼合从数据库中取出的数值并去重: PHP中数据库查询出来的二维数组去重方法 那么,我们任然有的需求是,修改指定key对应的value,或者批量修改某个字段的值,这又应该怎么做呢? 两种方式,一种是全部更改,另一种是改指定的值。 一、全部修改
123456789101112131415161718public function array_test(){// 修改 二维数组中的 name为 Getchar$users = array(array('name' => 'GetcharZp', 'age' => 19),array('name' => 'Mcx', 'age' => 18));foreach ($users as &$user) {$user['name'] = 'Getchar';}unset($user); // 销毁掉 user 引用print_r($users);}如上,整个二维数组中的name全部…
-
PHP中数据库查询出来的二维数组去重方法
有时候,我们需要合并多次查询结果来给前端呈现,这时就要合并二维数组。 二维数组去重,分两种情况,其一,是ID不重复,这种情况比较多,方法如下。 二维数组ID去重 1、定义方法
123456789101112131415161718public function remove_duplicates($arr, $key){$tmp_arr = array();foreach ($arr as $k => $v) {if (in_array($v[$key], $tmp_arr)) {//搜索$v[$key]是否在$tmp_arr数组中存在,若存在返回trueunset($arr[$k]);} else {$tmp_arr[] = $v[$key];}}sort($arr);return $arr;}2、调用方法
123$list = array_merge($public,$appoint);$key = 'id';$list = $this->remove_duplicates($list , $key);二维数组内容去重 [crayon-66…
-
PHP数字前补0方法,月份个位数前面补全0的方法
比如我们只做表单是给定的是数字,123456789,以及10/11/12,则补全的方式有: 1、前端定义value补全 下拉选框或其他情形显示123456789,而value给定01/02/03/04/05/06/07/08/09,即可。 2、后端PHP处理
12$params = input();$params['month'] = sprintf("%02d", $params['month']);语法[crayon-662c2641…
-
ThinkPHP如何从数据库中取出数据,复制遍历修改后重新插入数据库中
最近在做账单功能,需求是一键创建账单,创建时选择要复制数据的月份,即复制一份上月的数据稍作调整后作为本月或者任意月的数据。 这就需要从数据库中取出数据,修改后再插入数据库中,实际操作是发现一些问题,这里做一下总结。 一、取出数据 1、静态方法 静态方法取出的数据是对象,object,能做修改调整,但是重新插入数据库就会繁琐一些。 2、DB类 直接引用THIN…
-
子目录PHP提示no input file specified处理办法
首先直接访问资源或者静态资源看看能否获取,如果还是报这个错,直接删掉当前目录下的.user.ini即可,这个文件的作用是防跨站。 如果不是,考虑按以下方案处理: 一、IIS Noinput file specified
123456789101112131415方法一:改PHP.ini中的doc_root行,打开ini文件注释掉此行,然后重启IIS方法二:请修改php.ini找到; cgi.force_redirect = 1去掉前面分号,把后面的1改为0即cgi.force_redirect = 0二、apache No input file specified [cra…
-
VSCode在JS中写PHP代码报错忽略方法
有时候我们需要在JS代码中写PHP代码,用于判断或者输出,但是这个时间,VSCode可能会报错,虽然实际运行没有什么影响,但是毕竟谁也不想看到这种多余的错误提示,万一代码交到同事手上,他“修正了”这个错误,导致代码无法执行,就不好玩了。 比如这样: 所以,VSCode在JS中写PHP代码报错怎么忽略呢? 搜索了一圈,发现VSCode只能忽略某类错误,就是如果…
-
Layui switch Off状态下不向后台传值的解决办法
原生checkbox只有在checked状态时值才会被浏览器提交到后台,未checked时值不会被浏览器提交。 LayUI实际上也是checkbox,所以,在off状态下不提交到后台,是正常的。 解决办法 添加js监听开关组件,并对组件值做处理 在后台入库的地方做判断,如果没有传值,就设置is_show=0 其他解决办法 在checkbox的上一行加个hid…