PHP:检查一个数组是否只包含连续的数字索引

    PHP将所有数组作为关联的,所以没有任何内置的功能。有没有一个比较有效的方法来检查数组只包含数字键?     确切的说,我们希望能够实现这样的区分:  $sequentialArray = array('apple', 'orange', 'tomato', 'carrot');  和  $assocArray = array('fruit1' => 'apple',                      'fruit2' => 'orange',                      'veg1' => 'tomato',                      'veg2' => 'carrot');     用下面的方法可以做到: <?php function isAssoc($arr) {     return array_keys($arr) !== range(0, count($arr) - 1); } var_dump(isAssoc(array('a', 'b', 'c'))); // false var_dump(isAssoc(array("0" => 'a', "1" => 'b', "2" => 'c'))); // false var_dump(isAssoc(ar......

php二维数组排序

有时候我们需要对二维数组按某一个键对应的值去排序,如下面的数组 Array ( [0] => Array ( [hashtag] => a7e87329b5eab8578f4f1098a152d6f4 [title] => Flower [order] => 3 ) [1] => Array ( [hashtag] => b24ce0cd392a5b0b8dedc66c25213594 [title] => Free [order] => 2 ) [2] => Array ( [hashtag] => e7d31fc0602fb2ede144d18cdffd816b [title] => Ready [order] => 1 ) )   这是一个二维的数组,根据order键位的值顺序,当前的数组的排列可能不是我们想要的,我们可以用以下的方法对这个数组排序:   function aasort (&$array, $key) { $sorter=array(); $ret=array(); reset($array); foreach ($array as $ii => $va) { $sorter[$ii]=$va[$key]; } asort($sorter); foreach ($sorter as $ii => $va) { $ret[$ii]=$array[$ii]; } $array=$ret; } aasort($your_array,"order");   最后给出完整的测试代码:   <?php function aasort (&$array, $ke......

用table输出指定行和列的数据。

    假设数据库的一个表里有16条数据,我们要输出其中一个字段的值,例如question_name,用table我们可以循环16行来把它显示出来,但实际上我们要用4行4列来做这个事情。要实现这个目的,我可以这样: <table class="grid">     <tr>     <?php foreach ($result as $i => $row) : ?>         <td><?= htmlspecialchars($row['question_name']) ?></td>         <?php if (($i + 1) % 4 == 0) : ?></tr><tr><?php endif ?>     <?php endforeach ?>     </tr> </table>     你需要在每显示4个的时候做判断,来关闭一个tr,重新打开一个tr. 用table完成这项目标其实不是一个好的选择,用ul,li加css更好实现,这样不用每4个就来一个判断。例如: ?> <ul class="grid"> <?php foreach ($result as $row) : ?> <li><?= htmlspecialchars($row['question_name']) ?></li> <?php endforeach ?> </ul> css样式: .grid { list-style: none; width: 512px; } .grid l......

ckfinder上传文件自动重命名

ckfinder上传文件后会保持原来的文件名不变,来把上传的文件名保存在服务器上,有时候上传的文件名中含中文或一些特殊字符,会在调用的时候发生乱码,为了防止这种现象发生,我们要对上传的文件进行自动重命名。 以php版本为例 在目录core\connector\php\php5\commandHandler\中找到FileUpload.php文件。 大概在87行左右,在$sFileNameOrginal = $sFileName;这行代码下加入代码如下: //文件自动重命名 $fileext=pathinfo($sFileName); $sFileName=date('ymdHis',time()).sprintf("%02d",mt_rand(0,99)) . "." . $fileext['extension'];  //以当前日期加上随机数字 //结束文件自动重命 这样会以当前日期加上一个随机数来重新命名文件,这样也不会导致上传的文件重名。 代码截图 ......

php简单的“长轮询”的实例代码

    我们可以在网上找到信息是如何长轮询的实例,但都比较复杂。这里提供一个简单的例子.前端用jquery,后台处理用php。     注:Apache是​​不适合担任长轮询请求,这会很快耗尽服务器上的线程(因此提的例子并不需要扩展),只是一个通用的,简单的,用于了解具体的实现过程。 这里是一个非常简单的例子,在2-10秒后发送一个简单的字符串。 有三分之一的机会返回错误404(错误返回给JavaScript示例显示并处理),其中将“长轮询”服务器的返回信息.     msgsrv.php <?php if(rand(1,3) == 1){     /* Fake an error */     header("HTTP/1.0 404 Not Found");     die(); } /* Send a string after a random number of seconds (2-10) */ sleep(rand(2,10)); echo("Hi! Have a random number: " . rand(1,10)); ?>     注意:对于一个真正的网站,一个普通的web服务器,比如Apache上运行,这将很快扳消耗所有的“工作线程”,让它无法响应其他请求。要解决这个问题,建议用python,它是不依赖于每个单一线程请求的“长轮询服务器”。 cometD是流行的一种(在几种语言中),以至Tornado专门为这样的任务做了一个新的框架(专为FriendFeed上的长轮询代码)......但作为一个简单的......
<<  1  2  3  4  5  6  >>
京ICP备14008139号-1