PHP一些基本算法

// 设定你编码格式
header(“Content-Type: text/html; charset=utf-8”);
//打印一个三角形
echo ‘—一.打印出一个三角形–
’;
for( i = 0 ; i = 0; i=0;i <= 6;KaTeX parse error: Expected '}', got 'EOF' at end of input: i++){ for(j = 0; j < = 6 ; j <= 6; j<=6;j++){
echo ’ ‘;
}
for( k = 0 ; k = 0; k=0;k <= 2* i ; i; i;k++){
echo “*”;
}
echo ‘
’;
}
//杨辉三角
echo “—二.杨辉三角------
”;
for( i = 0 ; i=0; i=0;i<6;$i++){
//第一个和最后一个都为1
a [ a[ a[i][0] = 1;
a [ a[ a[i][KaTeX parse error: Expected 'EOF', got '}' at position 10: i] = 1; }̲ for(i=2; i < 6 ; i<6; i<6;i++){
for( j = 1 ; j=1; j=1;j< i ; i; i;j++){
a [ a[ a[i][$j] = a [ a[ a[i-1][ i − 1 ] + i-1]+ i1]+a[ i − 1 ] [ i-1][ i1][j];
}
}
for( i = 0 ; i=0; i=0;i<6;KaTeX parse error: Expected '}', got 'EOF' at end of input: i++){ for(j=0; j < = j<= j<=i;$j++){
echo a [ a[ a[i][$j].’ ';
}
echo ‘
’;
}
//合并多个数组
echo “------三.合并多个数组------
”;
function t(){
$c = func_num_args()-1;// 返回传递给函数的参数个数
a = f u n c g e t a r g s ( ) ; / / 返 回 一 个 数 组 , 包 括 函 数 的 参 数 列 表 f o r ( a = func_get_args();// 返回一个数组,包括函数的参数列表 for( a=funcgetargs();//for(i=0; i < = i<= i<=c;KaTeX parse error: Expected '}', got 'EOF' at end of input: … if(is_array(a[KaTeX parse error: Expected '}', got 'EOF' at end of input: i])){ for(j=0; j < c o u n t ( j<count( j<count(a[ i ] ) ; i]); i]);j++){
$r[] = a [ a[ a[i][$j];
}
}else{
die(‘Not a array’);
}
}
return $r;
}
echo “多个数组合并
”;
print_r(t(range(1,4),range(1,4),range(1,4)));
echo “
”;

//求牛
echo “------求牛----
”;
function cow( n u m , num, num,y){
for( j = 1 ; j=1; j=1;j< y ; y; y;j++){
if($j>=4 && $j<15){
n u m + + ; c o w ( num++; cow( num++;cow(num, y − y- yj);
}
if($j == 20){
$num–;
}
}
return $num;
}
echo cow(2,2);
echo “
”;

// 二分查找 非递归算法
echo “-----二分查找 非递归算法 -------
”;
a r r = a r r a y ( a r r a y ( ′ n a m e ′ = > ′ t o m ′ , ′ a g e ′ = > 20 ) , a r r a y ( ′ n a m e ′ = > ′ a n n y ′ , ′ a g e ′ = > 18 ) , a r r a y ( ′ n a m e ′ = > ′ j a c k ′ , ′ a g e ′ = > 22 ) ) ; f u n c t i o n d i v s e a r c h ( arr = array( array('name' => 'tom', 'age' => 20), array('name' => 'anny', 'age' => 18), array('name' => 'jack', 'age' => 22) ); function div_search( arr=array(array(name=>tom,age=>20),array(name=>anny,age=>18),array(name=>jack,age=>22));functiondivsearch(ary,$key) {
$low = 0;
h i g h = c o u n t ( high = count( high=count(ary) - 1;
i = 0 ; w h i l e ( i = 0; while( i=0;while(low <= $high) {
m i d = f l o o r ( ( mid = floor(( mid=floor((high+ l o w ) / 2 ) ; i f ( low)/2); if( low)/2);if(key == a r y [ ary[ ary[mid]) return k e y ; e l s e i f ( key; elseif( key;elseif(key < a r y [ ary[ ary[mid]) $high = $mid -1;// 唯有这样,范围才会不断缩小啊
else $low = KaTeX parse error: Expected 'EOF', got '}' at position 12: mid + 1; }̲ } echo '**二分…arr,0);
echo “
”;

// 二分查找 递归算法
echo “----二分查找,递归算法—
”;
function re_div_search( a r y , ary, ary,key, l o w , low, low,high) {
m i d = f l o o r ( ( mid = floor(( mid=floor((high+ l o w ) / 2 ) ; i f ( low)/2); if( low)/2);if(key == a r y [ ary[ ary[mid]) return k e y ; e l s e i f ( key; elseif( key;elseif(key < a r y [ ary[ ary[mid]) return re_div_search( a r y , ary, ary,key, l o w , low, low,mid -1);
else return re_div_search( a r y , ary, ary,key, m i d + 1 , mid + 1, mid+1,high);
}
echo ‘二分查找,递归算法查找:’.re_div_search($arr,‘age’);die;
echo “
”;
*/

//冒泡排序
echo “—冒泡排序方法--------
”;
a r r = a r r a y ( 23 , 4 , 55 , 77 , 88 , 65 , 34 , 3 ) ; M a o ( arr = array(23,4,55,77,88,65,34,3); Mao( arr=array(23,4,55,77,88,65,34,3);Mao(arr);
function mao($arr){
n = c o u n t ( n = count( n=count(arr);
for( i = 0 ; i=0; i=0;i< n ; n; n;i++){
for( j = j= j=n-1; j > 0 ; j>0; j>0;j–){
if( a r r [ arr[ arr[j-1]> a r r [ arr[ arr[j]){
$t = a r r [ arr[ arr[j-1];
a r r [ arr[ arr[j-1] = a r r [ arr[ arr[j];
a r r [ arr[ arr[j] = KaTeX parse error: Expected 'EOF', got '}' at position 8: t; }̲ } } //p…arr);
//return Mao(KaTeX parse error: Expected 'EOF', got '}' at position 8: arr); }̲ // print_r(arr);

//九九乘法表
echo “
”;
echo “---------**九九乘法表一------------
";
for( i = 1 ; i=1; i=1;i<=9;KaTeX parse error: Expected '}', got 'EOF' at end of input: i++){ for(j=1; j < = j<= j<=i;KaTeX parse error: Expected '}', got 'EOF' at end of input: j++){ if(j<=KaTeX parse error: Expected '}', got 'EOF' at end of input: i){ echo "i
j = " . j=". j=".i
KaTeX parse error: Undefined control sequence: \n at position 17: ….""; echo "\̲n̲"; } } e…i=1; i < = 9 ; i<=9; i<=9;i++){
for( j = 1 ; j=1; j=1;j<= i ; i; i;j++){
if( j < = j<= j<=i){
echo j . " ∗ " . j."*". j."".i.” = “. i ∗ i* ij.” ";
}
}
echo “
”;
}

echo “
”;

//猴子算法
/*

  • filename: kingmonkey.php
  • author: luochuan wang
  • date: April 2nd, 2009
  • descript: an arithmetic to a program
  • program: 一群猴子排成一圈,按1,2,…,n依次编号。
    然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,
    再数到第m只,在把它踢出去…,如此不停的进行下去, 直到最后只剩下一只猴子为止,
    那只猴子就叫做大王。 要求编程模拟此过程,输入m、n, 输出最后那个大王的编号。
    */

function getKingMokey($n, $m) {
m o n k e y [ 0 ] = 0 ; / / 将 1 − n 只 猴 子 顺 序 编 号 入 数 组 中 f o r ( monkey[0] = 0; //将1-n只猴子顺序编号 入数组中 for( monkey[0]=0;//1nfor(i= 1; $i<= $n; $i++){
m o n k e y [ monkey[ monkey[i] = $i;
}
l e n = c o u n t ( len = count( len=count(monkey);
//循环遍历数组元素(猴子编号)
for($i= 0; $i< $len; $i= $i){
$num = 0;
/*

  • 遍历$monkey数组,计算数组中值不为0的元素个数(剩余猴子的个数)
  • 赋值为 n u m , 并 获 取 值 不 为 0 的 元 素 的 元 素 值 ∗ / f o r e a c h ( num,并获取值不为0的元素的元素值 */ foreach( num0/foreach(monkey as $key => KaTeX parse error: Expected '}', got 'EOF' at end of input: value){ if(value == 0) continue;
    $num++;
    $values = $value;
    }

//若只剩一只猴子 则输出该猴子编号(数组元素值) 并退出循环
if($num == 1){
echo $values;
exit;
}
/*

  • 若剩余猴子数大于1($num > 1)

  • 继续程序
    /
    //将第$i只猴子踢出队伍(相应数组位置元素值设为0)
    m o n k e y [ monkey[ monkey[i] = 0;
    echo $i.""; //打印该猴子位置
    /

  • 获取下一只需要踢出队伍的猴子编号

  • m 值 范 围 内 遍 历 猴 子 并 设 置 m值范围内遍历猴子 并设置 mm的计数器

  • 依次取下一猴子编号

  • 若元素值为0,则该位置的猴子已被踢出队伍

  • 若不为0,继续获取下一猴子编号,且计数器加1

  • 若取得的猴子编号大于数组个数

  • 则从第0只猴子开始遍历(数组指针归零) 步骤同上

  • 直到计数器到达 m 值 ∗ 最 后 获 取 的 m值 * 最后获取的 mi值即为下一只需要踢出队伍的猴子编号
    */
    //设置计数器
    for($j= 1; $j<= $m; $j++){
    i + + ; / / 猴 子 编 号 加 一 , 遍 历 下 一 只 猴 子 i f ( i++; //猴子编号加一,遍历下一只猴子 if( i++;//if(monkey[ i ] > 0 ) c o n t i n u e ; / / 若 该 猴 子 未 被 踢 出 队 伍 , 获 取 下 一 只 猴 子 编 号 / / 若 元 素 值 为 0 , 则 猴 子 已 被 踢 出 队 伍 , 进 而 循 环 取 下 一 只 猴 子 编 号 i f ( i] > 0) continue; //若该猴子未被踢出队伍,获取下一只猴子编号 //若元素值为0,则猴子已被踢出队伍,进而循环取下一只猴子编号 if( i]>0)continue;//,//0if(monkey[KaTeX parse error: Expected '}', got 'EOF' at end of input: …取下一只猴子编号 for(k= $i; $k< $len; KaTeX parse error: Expected '}', got 'EOF' at end of input: …值为0,编号加1 if(monkey[$k] == 0) i + + ; / / 否 则 , 编 号 已 取 得 , 退 出 i f ( i++; //否则,编号已取得,退出 if( i++;//退if(monkey[KaTeX parse error: Expected 'EOF', got '}' at position 16: k] > 0) break; }̲ } //若编号大于猴…i == $len) i = 0 ; / / 同 上 步 骤 , 获 取 下 一 只 猴 子 编 号 i f ( i = 0; //同上步骤,获取下一只猴子编号 if( i=0;//if(monkey[KaTeX parse error: Expected '}', got 'EOF' at end of input: …= 0) { for(k= $i; $k< $len; KaTeX parse error: Expected '}', got 'EOF' at end of input: k++) { if(monkey[$k] == 0) $i++;

    if( m o n k e y [ monkey[ monkey[k] > 0) break;
    }
    }
    }
    }
    }
    //猴子个数
    $n = 10;
    //踢出队伍的编号间隔值
    m = 3 ; / / 调 用 猴 王 获 取 函 数 g e t K i n g M o k e y ( m = 3; //调用猴王获取函数 getKingMokey( m=3;//getKingMokey(n, $m);

/-------遍历文件下所有的文件和文件夹一—*/

     function traverse($path = '.') {
              $current_dir = opendir($path);    //opendir()返回一个目录句柄,失败返回false
              while(($file = readdir($current_dir)) !== false) {    //readdir()返回打开目录句柄中的一个条目
                $sub_dir = $path . DIRECTORY_SEPARATOR . $file;    //构建子目录路径
                 if($file == '.' || $file == '..') {
                     continue;
                 } else if(is_dir($sub_dir)) {    //如果是目录,进行递归
                     echo 'Directory ' . $file . ':<br>';
                     traverse($sub_dir);
                 } else {    //如果是文件,直接输出
                     echo 'File in Directory ' . $path . ': ' . $file . '<br>';
                 }
          }           

}
traverse(‘xxtt’);

/****—遍历文件下所有的文件和文件夹二–/
d i r = " . " ; / / 当 前 目 录 l i s t f i l e ( dir = "."; //当前目录 list_file( dir=".";//listfile(dir);
function list_file($dir){
l i s t = s c a n d i r ( list = scandir( list=scandir(dir); // 得到该文件下的所有文件和文件夹
foreach($list as $file){//遍历
f i l e l o c a t i o n = file_location= filelocation=dir."/". f i l e ; / / 生 成 路 径 i f ( i s d i r ( file;//生成路径 if(is_dir( file;//if(isdir(file_location) && KaTeX parse error: Expected 'EOF', got '&' at position 11: file!="." &̲&file!="…"){ //判断是不是文件夹
echo "------------------------sign in f i l e l o c a t i o n − − − − − − − − − − − − − − − − − − " ; l i s t f i l e ( file_location------------------"; list_file( filelocation";listfile(file_location); //继续遍历
}
echo “
”;
}
}

?>\

如何对下面两个数组进行相互转换
如题:我想做一个指定时间内输出每一天的日期和数量(默认为0)的数组,但是现在得到的是如下结构:
function date_rang($start_date, KaTeX parse error: Expected '}', got 'EOF' at end of input: …y_map(function(n){
$d = date(‘Y-m-d’, $n);
r = " 0 " ; r e t u r n ′ 日 期 ′ . ′ : ′ . r = "0"; return '日期'.':'. r="0";return.:.d.’|’.‘数量’.’:’.KaTeX parse error: Expected 'EOF', got '}' at position 4: r; }̲, range(strtoti…start_date), strtotime($end_date), 24*3600));
}

a r r = d a t e r a n g ( ′ 2014 − 11 − 1 0 ′ , ′ 2014 − 11 − 1 5 ′ ) ; p r i n t r ( arr = date_rang('2014-11-10', '2014-11-15'); print_r( arr=daterang(20141110,20141115);printr(arr);
更多

满意回答
这个是php吧,很容易改的,把输出字符串改成数组就行了,你设置一个data数组把结果代入进去就可以了,如下所示
function date_rang($start_date, KaTeX parse error: Expected '}', got 'EOF' at end of input: …y_map(function(n){
$data[‘日期’] = date(‘Y-m-d’, $n);
$data[‘数量’] =“0”;
return KaTeX parse error: Expected 'EOF', got '}' at position 7: data; }̲, range(strtoti…start_date), strtotime($end_date), 24*3600));
}
a r r = d a t e r a n g ( ′ 2014 − 11 − 1 0 ′ , ′ 2014 − 11 − 1 5 ′ ) ; p r i n t r ( arr = date_rang('2014-11-10', '2014-11-15'); print_r( arr=daterang(20141110,20141115);printr(arr);

php面试题不使用第三个变量交换两个变量的值 - PHP点点通
php面试题不使用第三个变量交换两个变量的值
发布时间: 2013-05-19浏览次数:7136分类: PHP教程
这是我最近看到的一道面试题,有多种方法实现:
实现1:

  1. <?php
  2. $a =“php”;
  3. $b =“java”;
  4. //list()不是函数,是语言结构,它是将数组中的值赋给一些变量
  5. list( a , a, a,b)= array( b , b, b,a);
  6. echo a . ′ − − − ′ . a.'---'. a..b;//java—php
  7. ?>

实现2:

  1. <?php
  2. $a =“php”;
  3. $b =“java”;
  4. a = e x p l o d e ( ′ − ′ , a = explode('-', a=explode(,a.’-’.$b);
  5. b = b = b=a[0];
  6. a = a = a=a[1];
  7. echo a . ′ − − − ′ . a.'---'. a..b;//java—php
  8. ?>
    https://my.oschina.net/banbo/blog/303308

三张表的链表查询
—table1指的是第一张表,table2指的是第二张表,table3指的是第三张表,
select
a.uid,a.uname,a.upsw,a.urealname,a.utel,a.remark,
b.rname,b.rremark,
c.deptname,c.deptremark
from table1 a,table2 b, table3 c
where a.sems_role_rid=b.rid and a.udeptid=c.deptid

<?php //字符串转字符数组 $str = "adfsdfdfghfddffasdfasdfasdfhfgga"; for($i=0;$i

使用五种以上方式获取一个文件的扩展名

1)get_ext1(KaTeX parse error: Expected '}', got 'EOF' at end of input: …return strrchr(file_name, ‘.’);}
2)get_ext2(KaTeX parse error: Expected '}', got 'EOF' at end of input: … return substr(file_name, strrpos(KaTeX parse error: Expected 'EOF', got '}' at position 18: …le_name, '.'));}̲ 3)get_ext3(file_name)
{ return array_pop(explode(’.’, KaTeX parse error: Expected 'EOF', got '}' at position 13: file_name));}̲ 4)get_ext4(file_name)
{ p = p a t h i n f o ( p = pathinfo( p=pathinfo(file_name);return KaTeX parse error: Expected 'EOF', got '}' at position 16: p['extension'];}̲ 5)get_ext5(file_name)
{ return strrev(substr(strrev( f i l e n a m e ) , 0 , s t r p o s ( s t r r e v ( file_name), 0, strpos(strrev( filename),0,strpos(strrev(file_name), ‘.’))
}
用PHP遍历目录下的全部文件

<?php /********************** 一个简单的目录递归函数 第一种实现办法:用dir返回对象 ***********************/ function tree($directory) { $mydir = dir($directory); echo "
  • \n"; while($file = $mydir->read()) { if((is_dir("$directory/$file")) AND ($file!=".") AND ($file!="..")) { echo "
  • $file
  • \n"; tree("$directory/$file"); } else echo "
  • $file
  • \n"; } echo "
\n"; $mydir->close(); } //开始运行 echo "

目录为粉红色


\n"; tree("./nowamagic"); **第二种实现办法:用readdir()函数** function listDir($dir) { if(is_dir($dir)) { if ($dh = opendir($dir)) { while (($file = readdir($dh)) !== false) { if((is_dir($dir."/".$file)) && $file!="." && $file!="..") { echo " 文件名:",$file,"

"; listDir($dir."/".$file."/"); } else { if($file!="." && $file!="..") { echo $file."
"; } } } closedir($dh); } } } //开始运行 listDir("./nowamagic"); ?>

另一种方式:

<?php function read_all_dir ( $dir ) { $result = array(); $handle = opendir($dir); if ( $handle ) { while ( ( $file = readdir ( $handle ) ) !== false ) { if ( $file != '.' && $file != '..') { $cur_path = $dir . DIRECTORY_SEPARATOR . $file; if ( is_dir ( $cur_path ) ) { $result['dir'][$cur_path] = read_all_dir ( $cur_path ); } else { $result['file'][] = $cur_path; } } } closedir($handle); } return $result; } ?>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值