算法提炼是落脚点php数组字符串函数

int array_unshift    ( array &$array   , mixed $value1   [, mixed $...  ] )

array_unshift() prepends passed elements to the front   of the array. Note that the list of elements is   prepended as a whole, so that the prepended elements stay in the same   order.  All numerical array keys will be modified to start counting from   zero while literal keys won't be touched.

<?php
$queue = array('a', 'b', 'c');
array_unshift($queue, 'unshift');
w($queue);
$queue = array('a', 'b', 'c');
array_unshift($queue, array('unshift','unshift_1'));
w($queue);
$queue = array('a', 'b', 'c','D'=>'dd');
array_unshift($queue, 'unshift');
w($queue);
$queue = array('a', 'b', 'c','D'=>'dd',array('unshift','unshift_1'));
array_unshift($queue, array('unshift','unshift_1'));
w($queue);
die();
D:\wamp64\www\w0827pm\study.php:109:
array (size=4)
  0 => string 'unshift' (length=7)
  1 => string 'a' (length=1)
  2 => string 'b' (length=1)
  3 => string 'c' (length=1)
D:\wamp64\www\w0827pm\study.php:109:
array (size=4)
  0 => 
    array (size=2)
      0 => string 'unshift' (length=7)
      1 => string 'unshift_1' (length=9)
  1 => string 'a' (length=1)
  2 => string 'b' (length=1)
  3 => string 'c' (length=1)
D:\wamp64\www\w0827pm\study.php:109:
array (size=5)
  0 => string 'unshift' (length=7)
  1 => string 'a' (length=1)
  2 => string 'b' (length=1)
  3 => string 'c' (length=1)
  'D' => string 'dd' (length=2)
D:\wamp64\www\w0827pm\study.php:109:
array (size=6)
  0 => 
    array (size=2)
      0 => string 'unshift' (length=7)
      1 => string 'unshift_1' (length=9)
  1 => string 'a' (length=1)
  2 => string 'b' (length=1)
  3 => string 'c' (length=1)
  'D' => string 'dd' (length=2)
  4 => 
    array (size=2)
      0 => string 'unshift' (length=7)
      1 => string 'unshift_1' (length=9)

mixed array_shift    ( array &$array   )

array_shift() shifts the first value of the    array off and returns it, shortening the    array by one element and moving everything   down. All numerical array keys will be modified to start counting from zero   while literal keys won't be touched.

 1 $queue = array('a', 'b', 'c');
 2 array_shift($queue);
 3 wb($queue);
 4 $queue = array('a', 'b', 'c','D'=>'dd',array('shift','shift_1'));
 5 array_shift($queue);
 6 wb($queue);
 7 echo '----------------------------<br>';
 8 $queue = array('a', 'b', 'c','D'=>'dd',array('shift','shift_1'));
 9 w($queue[count($queue)-2]);
10 w(current($queue));
11 w(next($queue));
12 w(next($queue));
13 array_shift($queue);
14 wb($queue);
15 
16 function wb($w){
17     w($w);
18     if (is_array($w)) {
19         w(current($w));
20     } else {
21         w('! is_array(var)');
22     }
23 }
D:\wamp64\www\w0827pm\study.php:133:
array (size=2)
  0 => string 'b' (length=1)
  1 => string 'c' (length=1)
D:\wamp64\www\w0827pm\study.php:133:string 'b' (length=1)
D:\wamp64\www\w0827pm\study.php:133:
array (size=4)
  0 => string 'b' (length=1)
  1 => string 'c' (length=1)
  'D' => string 'dd' (length=2)
  2 => 
    array (size=2)
      0 => string 'shift' (length=5)
      1 => string 'shift_1' (length=7)
D:\wamp64\www\w0827pm\study.php:133:string 'b' (length=1)
----------------------------
D:\wamp64\www\w0827pm\study.php:133:
array (size=2)
  0 => string 'shift' (length=5)
  1 => string 'shift_1' (length=7)
D:\wamp64\www\w0827pm\study.php:133:string 'a' (length=1)
D:\wamp64\www\w0827pm\study.php:133:string 'b' (length=1)
D:\wamp64\www\w0827pm\study.php:133:string 'c' (length=1)
D:\wamp64\www\w0827pm\study.php:133:
array (size=4)
  0 => string 'b' (length=1)
  1 => string 'c' (length=1)
  'D' => string 'dd' (length=2)
  2 => 
    array (size=2)
      0 => string 'shift' (length=5)
      1 => string 'shift_1' (length=7)
D:\wamp64\www\w0827pm\study.php:133:string 'b' (length=1)
原文地址:https://www.cnblogs.com/rsapaper/p/5815766.html