1. $a = '23abc'; echo intval($a)//23
$a = 'abc'; echo intval($a)//0
2. 如何防止用户重复表单提交 1利用前端对提交按钮做限制 等到结果返回在释放按钮限制
2服务端给前端传个随机码 然后提交时带过来 然后服务端进行存储起来 如果重复提交在进行判断 如果存在此串 则是重复提交
//服务端生成随机数存入session, 分配至表单页 $data['sess_id'] = $_SESSION['sid'] = mt_rand(1000, 9999); $this->load->view('form', $data); //表单页隐藏域存放此session值 <input type="hidden" name="sid" value="<?=$sess_id; ?>"> //处理 if($_POST['sid'] != '' && $_POST['sid'] == $_SESSION['sid']) { unset($_SESSION['sid']); echo '处理数据'; } else { echo '已提交过表单'; }
3. 不通过递归或者循环方法找到多维数组中一个数值
思路:可以将数组通过json_encode转化为字符串 再用strpos查找该值在字符串中的位置
4. 如何知道某个日期是周几 可以用date函数的W参数
date('w',1523343600); //得到指定日期是星期几
date('j',1523343600); //得到指定日期是几号
5. 冒泡排序
function bubbleSort($numbers) {
$cnt = count($numbers);
for ($i = 0; $i < $cnt; $i++) {
for ($j = 0; $j < $cnt - $i - 1; $j++) {
if ($numbers[$j] > $numbers[$j + 1]) {
$temp = $numbers[$j];
$numbers[$j] = $numbers[$j + 1];
$numbers[$j + 1] = $temp;
}
}
}
return $numbers;
6. 二分查找
function binary(&$arr,$low,$top,$target){ while($low <= $top){ //由于php取商是有小数的,所以向下取整,不过也可不加,数组也会取整 $mid = floor(($low+$top)/2); if($arr[$mid]==$target){ return $mid; }elseif($arr[$mid]<$target){ $low = $mid+1; }else{ $top = $mid-1; } } return -1; } $arr = array(1,3,9,23,54); echo binary($arr, 0, sizeof($arr), 9);die;