PHP面试常出现的小算法总结

 

<?php
  //打印一个三角形
  for($i=0;$i<=3;$i++)
  {
  for($j=0;$j<=3-$i;$j++){
  echo ‘&nbsp;’;
  }
  for($k=0;$k<=2*$i;$k++)
  {
  echo “*”;
  }
  echo ‘<br>’;
  }
  ?>
  <?php
  //杨辉三角
  for($i=0;$i<6;$i++)
  {
  //第一个和最后一个都为1
  $a[$i][0]=1;
  $a[$i][$i]=1;
  }
  for($i=2;$i<6;$i++){
  for($j=1;$j<$i;$j++)
  {
  $a[$i][$j]=$a[$i-1][$i-1]+$a[$i-1][$j];
  }
  }
  for($i=0;$i<6;$i++)
  {
  for($j=0;$j<=$i;$j++){
  echo $a[$i][$j].’&nbsp;’;
  }
  echo ‘<br/>’;
  }
  ?>
  <?php
  //合并多个数组
  function t(){
  $c=func_num_args()-1;//返回传递给函数的参数个数
  $a=func_get_args();//返回一个数组,包括函数的参数列表
  for($i=0;$i<=$c;$i++){
  if(is_array($a[$i])){
  for($j=0;$j<count($a[$i]);$j++){
  $r[]=$a[$i][$j];
  }
  }else{
  die(‘Not a array’);
  }
  }
  return $r;
  }
  print_r(t(range(1,4),range(1,4),range(1,4)));
  ?>
  <?php
  //求牛
  function cow($num,$y)
  {
  for($j=1;$j<$y;$j++)
  {
  if($j>=4 && $j<15)
  {
  $num++;
  cow($num,$y-$j);
  }
  if($j==20)
  $num–;
  }
  return $num;
  }
  echo cow(2,2);
  ?>
  <?php
  //顺序查找(数组里查找某个元素)
  function seq_sch($array,$n,$k)//在某个位置之前查找某元素(不包括指定位置)
  {
  $array[$n]=$k;
  for($i=0;$i<$n;$i++)
  {
  if($array[$i]==$k)
  break;
  }
  if($i<$n)
  return $i;
  else
  return -1;
  }
  $array=array(‘a’,'b’,'c’);
  echo seq_sch($array,2,’b');
  ?>
  <?php
  function show($i)
  {
  if($i==1)
  return 1;
  else
  return $i*show($i-1);
  }
  echo “<br>”;
  echo show(3);
  ?>
  <?php
  //裴波那挈数列
  function b($n)
  {
  if($n<2)
  return $n;
  else
  return b($n-1)+show($n-2);
  }
  echo b(2);
  ?>

阅读全文

几个简单的php数据文件缓存类

1.对于一般的变量,把该变量变成php语言的格式,写到文件中,用时只要include这个文件就相当于加载了cache了;
2.对于array型的变量,把array转化为php语言定义array的字符串,写到文件中,用时也只要include就相当于加载了cache了;
3.缓存cache时间上的控制,通过获取缓存文件的创建时间和现在的时间进行对比,如果没有到更新时间,直接读取缓存,如果到了更新时间,查询数据库,

阅读全文

php使用empty()函数要注意事项

从表面上看,很容易误解empty()函数是判断字符串是否为空的函数,其实并不是,我也因此吃了很多亏。

empty()函数是用来测试变量是否已经配置。若变量已存在、非空字符串或者非零,则返回 false 值;反之返回 true值。所以,当字符串的值为0时,也返回true,就是执行empty内部的语句。这就是陷阱。

阅读全文

分享一个php实现无限级分类程序代码

下面给大家看看我的数据库结构吧:数据库的名字为:fa_category

     我们使用一个parentid字段来记录父节点的id,如果parentid为0,则为root。不多说,我们看看代码怎么写吧。我们要实现的功能就是如图片所示:

阅读全文

Python与SQLite日期时间函数的使法

SQLite的时间函数跟Python的时间函数有些许差别,所以稍做记录,供自己以后查询。
    网上有将SQLite官方WIKI内容翻译成中文的文章,大家有兴趣可以搜索一下,我这里单纯记录一下个人比较常用的一些内容。

阅读全文