array_push

PHP使用数组实现队列、堆栈(实际就是先进先出、先进后出怎样实现)

我只是一个虾纸丫 提交于 2019-12-05 00:22:45
1. array_shift() - 将数组开头的单元移出数组; array_push() - 将一个或多个单元压入数组的末尾(入栈); array_pop() - 弹出数组最后一个单元(出栈) PHP中将一个数组作为一个栈 ,主要是使用array_push()和array_pop()两个系统函数来完毕。(“先进后出”)入栈主要是利用array_push()函数向第一个参数-数组的 尾部 加入一个或多个元素。然后返回新的数组长度。 而PHP中,将数组当做是队列则主要是用array_push和array_shift()实现。(“先进先出”) <?php $zhan=array("WEB");//声明一个数组当做栈/队列 array_push($zhan,"PHP");//将字符串压入栈/队列(数组)中 array_push($zhan,"WWW.CHHUA.COM");//再压入一个元素 array_push($zhan,"WEB开发笔记"); array_push($zhan,"PHP"); array_push($zhan,"站点建设"); print_r($zhan);//打印数组内容 ?> 结果为:Array ( [0] => WEB [1] => PHP [2] => WWW.CHHUA.COM [3] => WEB开发笔记 [4] => PHP [5] => 站点建设 )

php array_push 与 $arr[]=$value 性能比较

南笙酒味 提交于 2019-12-04 17:22:23
使用array_push压入1000000个元素 <pre> <?php $starttime = get_microtime(); $arr = array(); for($i=0; $i<1000000; $i++){ array_push($arr, $i); } $endtime = get_microtime(); printf("run time %f ms\r\n", ($endtime-$starttime)*1000); function get_microtime(){ list($usec, $sec) = explode(' ', microtime()); return (float)$usec + (float)$sec; } ?> </pre> 执行时间:2735.545158 ms <?php $starttime = get_microtime(); $arr = array(); for($i=0; $i<1000000; $i++){ $arr[] = $i; } $endtime = get_microtime(); printf("run time %f ms\r\n", ($endtime-$starttime)*1000); function get_microtime(){ list($usec, $sec) = explode('

How to push both value and key into array

匿名 (未验证) 提交于 2019-12-03 02:08:02
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: Take a look at this code: $GET = array(); $key = 'one=1'; $rule = explode('=', $key); /* array_push($GET, $rule[0] => $rule[1]); */ I'm looking for something like this so that: print_r($GET); /* output: $GET[one => 1, two => 2, ...] */ Is there a function to do this? (because array_push won't work this way) 回答1: Nope, there is no array_push() equivalent for associative arrays because there is no way determine the next key. You'll have to use $arrayname[indexname] = $value; 回答2: Pushing a value into an array automatically creates a numeric