• 【php】基础学习2


      主要包括数组的学习,具体如下:

      1 <html xmlns=http://www.w3.org/1999/xhtml>
      2     <head>
      3     <meta http-equiv=Content-Type content="text/html;charset=utf-8">
      4     </head>
      5     <body>
      6     <?php
      7         /*
      8         * 数组
      9         */
     10         //数组初始化
     11         $php=array('news','bbs','blog','zend');
     12         foreach($php as $temp){
     13             echo $temp." ";
     14         }
     15         echo "<br/>";
     16         
     17         /* rangge()函数
     18         * 该函数具有一个可选的第三个参数
     19         */
     20         //1
     21         $test1=range(1,10);
     22         foreach($test1 as $temp){
     23             echo $temp." ";
     24         }
     25         echo "<br/>";
     26         //2
     27         $test2=range(1,10,2);
     28         foreach($test2 as $temp){
     29             echo $temp." ";
     30         }
     31         echo "<br/>";
     32         //2
     33         $latters=range("a","z");
     34         foreach($latters as $temp){
     35             echo $temp." ";
     36         }
     37         echo "<br/>";
     38         //3
     39         $latters[0]="start";
     40         foreach($latters as $temp){
     41             echo $temp." ";
     42         }
     43         echo "<br/>";
     44         //4 for循环的用法
     45         for($i=0;$i<26;$i++){
     46             echo $latters[$i]." ";
     47         }
     48         echo "<br/>";
     49         
     50         /*
     51         * 在PHP中定义数组非常灵活,不需要在创建数组时指定数组的大小,
     52         * 甚至不需要在使用数组前先声明,也可以在同一个数组中存储任何类型的数据
     53         * 关联数组和索引数组
     54         */
     55         //可以使用array来创建一个索引数组
     56         $array=array("bike","car","plane");
     57         print_r($array);
     58         echo "<br/>";//Array ( [0] => bike [1] => car [2] => plane )
     59         //如果要自定义数组的索引,可以通过'=>'来左右链接键值对
     60         $array=array(1=>"bike",3=>"car",6=>"plane");
     61         print_r($array);//Array ( [1] => bike [3] => car [6] => plane )
     62         //以上是索引数组的创建方法,下面看看关联数组的创建方法
     63         $array=array("Jim"=>"bike","Lily"=>"car","Tom"=>"plane");
     64         echo "<br/>".$array['Lily']."<br/>";
     65         //php是一种弱类型语言,使用“[]”来向数组中添加一条数据
     66         $array=array("bike","car","plane");
     67         print_r($array);
     68         echo "<br/>";
     69         $array []="train";
     70         print_r($array);
     71         echo "<br/>";
     72         
     73         /*
     74         * print_r()与var_dmp()函数
     75         * print_r()打印关于变量的易于理解的信息。
     76         * var_dmp()打印变量的相关信息
     77         */
     78         $a = array(1, 2, array("a", "b", "c"));
     79         print_r($a);
     80         echo "<br/>";//Array ( [0] => 1 [1] => 2 [2] => Array ( [0] => a [1] => b [2] => c ) ) 
     81         var_dump($a);
     82         echo "<br/>";//array(3) { [0]=> int(1) [1]=> int(2) [2]=> array(3) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "c" } } 
     83         
     84         /*
     85         * 当需要在数组头添加元素时,可以使用array_unshift()函数来实现
     86         * int array_unshift(array &array,mixed var [, mixed ...])
     87         * 返回 array 数组新的单元数目。
     88         * 该函数将传入的单元插入到array数组的开头
     89         * ①单元是作为一个真题被出入的,因此传入单元将保持同样的顺序;
     90         * ②所有的数值键名豆浆修改为从零开始重新计数;
     91         * ③所有的文字键名都保持不变
     92         */
     93         $array= array("bike","car");
     94         $a=array_unshift($array,"train","plane");
     95         echo $a."<br/>";//4
     96         var_dump($array);//array(4) { [0]=> string(5) "train" [1]=> string(5) "plane" [2]=> string(4) "bike" [3]=> string(3) "car" } 
     97         echo "<br/>";
     98         
     99         /*
    100         * 当需要在数组尾添加元素时候可以使用array_push()函数来实现
    101         * int array_push(array &array,mixed var [,mixed ...]);
    102         * 和array_unshift()类似
    103         */
    104         $array= array("bike","car");
    105         $a=array_push($array,"train","plane");
    106         echo $a."<br/>";//4
    107         var_dump($array);
    108         echo "<br/>";
    109         
    110         /*
    111         * 当需要从数组头删除元素时可以使用array_shift()函数来实现
    112         * mixed array_shift(array &array);
    113         * 该函数将array的第一个单元移出并作为结果返回
    114         * 如果array为空,则返回NULL
    115         */
    116         $array=array("bike","car","train");
    117         array_shift($array);
    118         var_dump($array);
    119         echo "<br/>";
    120         
    121         /*
    122         * 从数组结尾处删除元素时,可以使用array_pop()函数来实现
    123         * mixed array_pop(array &array)
    124         * 该函数将arary的最后一个单元移除并作为结果返回
    125         */
    126         $array=array("bike","car","train");
    127         array_pop($array);
    128         var_dump($array);
    129         echo "<br/>";
    130         
    131         /*
    132         * 数组的遍历
    133         * 可以使用for循环、foreach循环
    134         * 使用count()函数来获取数组的元素个数
    135         */
    136         //for循环
    137         $array=array("bike","car","train");
    138         $count=count($array);
    139         for($i=0;$i<$count;$i++){
    140             echo $array[$i]." ";
    141         }
    142         echo "<br/>";
    143         //foreach,1更改foreach()循环的条件,可以将数组以键值对的形式输出
    144         $array=array("mike"=>"bike","zuke"=>"car","tomy"=>"plane","cacy"=>"train","larry"=>"tank");        
    145         foreach($array as $k=>$v){
    146             echo "键:".$k."=>值:".$v."<br/>";
    147         }
    148         //foreach,2
    149         $array=array("mike"=>"bike","zuke"=>"car","tomy"=>"plane","cacy"=>"train","larry"=>"tank");        
    150         while(list($k,$v)=each($array)){
    151             echo "键:".$k."=>值:".$v."<br/>";
    152         }
    153 
    154         /*
    155         * 可以很容易地通过在 $value 之前加上 & 来修改数组的元素。
    156         * 此方法将以引用赋值而不是拷贝一个值。
    157         * 数组最后一个元素的 $value 引用在 foreach 循环之后仍会保留。建议使用 unset() 来将其销毁
    158         */
    159         //1
    160         $arr = array(1, 2, 3, 4);
    161         foreach ($arr as &$value) {
    162             $value = $value * 2;
    163         }
    164         print_r($arr);// $arr is now array(2, 4, 6, 8)
    165         unset($value); 
    166 
    167         /*
    168         * unset的用法:释放给定的变量
    169         * void unset ( mixed $var [, mixed $... ] )
    170         * unset() 在函数中的行为会依赖于想要销毁的变量的类型而有所不同。
    171         */
    172         //①如果在函数中 unset() 一个全局变量,则只是局部变量被销毁,
    173         //  而在调用环境中的变量将保持调用 unset() 之前一样的值。
    174         function destroy_foo() {
    175             global $foo;
    176             unset($foo);
    177         }
    178         $foo = 'bar';
    179         destroy_foo();
    180         echo "<br/>".$foo."<br/>";//bar
    181         //如果想在函数中 unset() 一个全局变量,可使用 $GLOBALS 数组来实现:
    182         function foo() {
    183             unset($GLOBALS['bar']);
    184         }
    185         $bar = "something";
    186         foo();
    187         //echo $bar; 变量未定义错误
    188         //②如果在函数中 unset() 一个静态变量,那么在函数内部此静态变量将被销毁。
    189         //    但是,当再次调用此函数时,此静态变量将被复原为上次被销毁之前的值。
    190         function foo1(){
    191             static $bar;
    192             $bar++;
    193             echo "Before unset: $bar, ";
    194             unset($bar);
    195             $bar = 23;
    196             echo "after unset: $bar<br/>
    ";
    197         }
    198         foo1();
    199         foo1();
    200         foo1();
    201         
    202         /*
    203         * reset 将数组的内部指针指向第一个单元
    204         * mixed reset(array &$array)
    205         * 返回数组第一个单元的值,如果数组为空则返回FALSE。
    206         *current() - 返回数组中的当前单元
    207          each()    - 返回数组中当前的键/值对并将数组指针向前移动一步
    208          end()     - 将数组的内部指针指向最后一个单元
    209          next()    - 将数组中的内部指针向前移动一位
    210          prev()    - 将数组的内部指针倒回一位
    211         */
    212         $array = array('step one', 'step two', 'step three', 'step four');
    213         // by default, the pointer is on the first element
    214         echo current($array) . "<br />
    "; // "step one"
    215         next($array);
    216         next($array);
    217         echo current($array) . "<br />
    "; // "step three"
    218         reset($array);
    219         echo current($array) . "<br />
    "; // "step one"
    220         
    221         /*
    222         * list 把数组中的值赋给一些变量
    223         * array list ( mixed $varname [, mixed $... ] )
    224         * 返回指定的数组。
    225         * 和array()一样,这不是真正的函数,而是语言结构
    226         */
    227         //1
    228         $info = array('coffee', 'brown', 'caffeine');
    229         // 列出所有变量
    230         list($drink, $color, $power) = $info;
    231         echo "$drink is $color and $power makes it special.<br/>
    ";
    232         // 列出他们的其中一个
    233         list($drink, , $power) = $info;
    234         echo "$drink has $power.<br/>
    ";
    235         // 或者让我们跳到仅第三个
    236         list( , , $power) = $info;
    237         echo "I need $power!<br/>
    ";
    238         // list() 不能对字符串起作用
    239         list($bar) = "abcde";
    240         var_dump($bar); // NULL
    241         //2
    242         echo "<br/>";
    243         list($a, list($b, $c)) = array(1, array(2, 3));
    244         var_dump($a, $b, $c);
    245         
    246         /*
    247         * 字符串与数组之间的转换
    248         * 两个函数:implode()和explode()
    249         */
    250         $array=array("bike","car","plane","train");
    251         echo "<br/>";
    252         print_r($array);
    253         echo "<br/>经过implode处理后的$array<br/>";
    254         $array=implode("---",$array);
    255         echo $array."<br/>";
    256         echo "经过explode处理后的$array<br/>";
    257         $array=explode("---",$array);
    258         print_r($array);
    259         
    260         /*
    261         * 多维数组以及格式化输出
    262         */
    263         echo "<pre>";//格式化输出
    264         $array=array("color"=>array("yellow","pink","white"),
    265                       "car"=>array("toyota","honda","benz"),
    266                       "stationery"=>array("ruler","pen","pencil"));
    267         var_dump($array);
    268         echo "</pre>";
    269         
    270         /*
    271         * 数组排序:sort()和rsort()
    272         * 这两个函数可以接受两个参数:一个是需要排序的数组,一个是指定排序的方式*
    273         * 第二个参数可以为SORT_REGULAR,SORT_NUMBERIC,SORT_STRING,SORT_LOCALE_STRING
    274         */
    275         $array=array(31,55,12,77,21,123);
    276         sort($array);
    277         print_r($array);
    278         echo "<br/>";
    279         rsort($array);
    280         print_r($array);
    281         
    282         /*
    283         * 排序函数:asort()和arsort()
    284         * 他们和sort和rsort的排序功能和传入参数都一样,唯一的区别在于
    285         * 经过sort()排序后的数组的键会重新分配,而asort则会保持数据原有的键值对。
    286         */
    287         $array=array(1=>"plane",3=>"bike",6=>"car",9=>"train");
    288         asort($array);
    289         echo "<br/>";
    290         print_r($array);
    291         echo "<br/>";
    292         arsort($array);
    293         print_r($array);
    294         
    295         /*
    296         * 数组排序函数:ksort()和krsort()
    297         * ksort()和sort()的区别是sort()为数组中的值排序,而ksort()为数组中的键排序
    298         */
    299         $array=array(1=>"plane",3=>"bike",6=>"car",9=>"train");
    300         ksort($array);
    301         echo "<br/>";
    302         print_r($array);
    303         echo "<br/>";
    304         krsort($array);
    305         print_r($array);
    306         
    307         /*
    308         * 随机排序函数:shuffle()
    309         * 该函数会将数组中的值随机排序,并初始化所有的键以整数0开始,1为步长增加
    310         */
    311         $array=array(1=>"plane",3=>"bike",6=>"car",9=>"train");
    312         shuffle($array);
    313         echo "<br/>";
    314         print_r($array);
    315         
    316         /*
    317         * 对多个数组或多维数组进行排序的函数array_multisort()
    318         * bool array_multisort ( array &$arr [, mixed $arg = SORT_ASC [, mixed $arg = SORT_REGULAR [, mixed $... ]]] )
    319         * 成功时返回 TRUE, 或者在失败时返回 FALSE。
    320         * 关联(string)键名保持不变,但数字键名会被重新索引。
    321         * ① 排序顺序标志:SORT_ASC,SORT_DESC
    322         * ② 排序类型标志:
    323              SORT_REGULAR——将项目按照通常方法比较
    324              SORT_NUMERIC——将项目按照数值比较
    325              SORT_STRING——将项目按照字符串比较
    326         */
    327         //1 对多个数组排序
    328         $ar1 = array(20, 110, 100, 0);
    329         $ar2 = array(1, 3, 2, 4);
    330         array_multisort($ar1, SORT_ASC, SORT_STRING, $ar2, SORT_ASC, SORT_NUMERIC);
    331         echo "<br/>".implode(" ",$ar1);//0 100 110 20
    332         echo "<br/>".implode(" ",$ar2);//1 2 3 4
    333         //2 对多维数组排序
    334         $grade=array("score"=>array(70,95,70.0,60,"70"),
    335                       "name"=>array("zhang san","li si","wang wu","zhao liu","liu qi"));
    336         array_multisort($grade["score"],SORT_NUMERIC,SORT_DESC,
    337                         $grade["name"],SORT_STRING,SORT_ASC);
    338         echo "<pre>";
    339         print_r($grade);
    340         echo "</pre>";
    341         
    342         /*
    343         * 判断一个值是否在数组中:in_array()
    344         * bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )
    345         * 如果找到 needle 则返回 TRUE,否则返回 FALSE。
    346         * ① 在 haystack 中搜索 needle,如果没有设置 strict 则使用宽松的比较。
    347         * ② 如果 needle 是字符串,则比较是区分大小写的。
    348         * ③ 如果第三个参数 strict 的值为 TRUE 则 in_array() 函数还会检查 needle 的类型是否和 haystack 中的相同。
    349         */
    350         //1
    351         $os = array("Mac", "NT", "Irix", "Linux");
    352         if (in_array("Irix", $os)) {
    353             echo "Got Irix<br>";
    354         }
    355         //2
    356         $a = array('1.10', 12.4, 1.13);
    357         if (in_array('12.4', $a, true)) {
    358             echo "'12.4' found with strict check<br/>
    ";//不执行,类型不同
    359         }
    360         
    361         /*
    362         * 判断某个键值或索引是否存在于数组中:array_key_exists()
    363         * bool array_key_exists ( mixed $key , array $search )
    364         * 成功时返回 TRUE, 或者在失败时返回 FALSE。
    365         */
    366         $search_array = array('first' => 1, 'second' => 4);
    367         if (array_key_exists('first', $search_array)) {
    368             echo "The 'first' element is in the array<br/>";
    369         }
    370         
    371         /*
    372         * 数组合并函数:array_merge()
    373         * array array_merge ( array $array1 [, array $... ] )
    374         * 返回结果数组。
    375         * ① 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面;
    376         * ② 如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。
    377              然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。
    378           ③ 如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。
    379         */
    380         //1
    381         $array1 = array("color" => "red", 2, 4);
    382         $array2 = array("a", "b", "color" => "green", "shape" => "trapezoid", 4);
    383         $result = array_merge($array1, $array2);
    384         print_r($result);
    385         echo "<br/>";
    386         //2
    387         $array2 = array(1 => "data");
    388         $result = array_merge($array2);
    389         print_r($result);
    390         echo "<br/>";
    391         
    392         /*
    393         * 数组合并函数:array_combine
    394         * 该函数作用:创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值
    395         * array array_combine ( array $keys , array $values )
    396         * 返回合并的 array,如果两个数组的单元数不同则返回 FALSE。
    397         */
    398         $a = array('green', 'red', 'yellow');
    399         $b = array('avocado', 'apple', 'banana');
    400         $c = array_combine($a, $b);
    401         print_r($c);
    402         echo "<br/>";
    403         
    404         /*
    405         * 数组拆分函数array_chunk()
    406         * array array_chunk ( array $input , int $size [, bool $preserve_keys = false ] )
    407         * 得到的数组是一个多维数组中的单元,其索引从零开始,每一维包含了 size 个元素。
    408         * ① 将一个数组分割成多个数组,其中每个数组的单元数目由 size 决定。最后一个数组的单元数目可能会少于 size 个。
    409         * ② preserve_keys设为TRUE,可以使 PHP 保留输入数组中原来的键名。
    410              如果你指定了 FALSE,那每个结果数组将用从零开始的新数字索引。
    411         */
    412         $input_array = array('a', 'b', 'c', 'd', 'e');
    413         echo "<pre>";
    414         print_r(array_chunk($input_array, 2));
    415         print_r(array_chunk($input_array, 2, true));
    416         echo "</pre>";
    417         
    418         /*
    419         * 返回数组交集的函数:array_intersect()
    420         * array array_intersect ( array $array1 , array $array2 [, array $ ... ] )
    421         * 返回一个数组,该数组包含了所有在array1 中也同时出现在所有其它参数数组中的值。注意键名保留不变。
    422         */
    423         $array1 = array("a" => "green", "red", "blue");
    424         $array2 = array("b" => "green", "yellow", "red");
    425         $result = array_intersect($array1, $array2);
    426         print_r($result);//Array ( [a] => green [0] => red )
    427         echo "<br/>";
    428         
    429         /*
    430         * 将数组转换成标量变量:extract()
    431         * int extract ( array &$var_array [, int $extract_type = EXTR_OVERWRITE [, string $prefix = NULL ]] )
    432         * 返回成功导入到符号表中的变量数目。
    433         * ① var_array 一个关联数组。此函数会将键名当作变量名,值作为变量的值。
    434         * ② 对待非法/数字和冲突的键名的方法将根据 extract_type 参数决定。可以是以下值之一:
    435              EXTR_OVERWRITE 如果有冲突,覆盖已有的变量。
    436              EXTR_SKIP 如果有冲突,不覆盖已有的变量。
    437              EXTR_PREFIX_SAME 如果有冲突,在变量名前加上前缀 prefix。
    438              EXTR_PREFIX_ALL 给所有变量名加上前缀 prefix。
    439              EXTR_PREFIX_INVALID 仅在非法/数字的变量名前加上前缀 prefix。
    440              EXTR_IF_EXISTS 仅在当前符号表中已有同名变量时,覆盖它们的值,其它的都不处理。
    441              EXTR_PREFIX_IF_EXISTS 仅在当前符号表中已有同名变量时,建立附加了前缀的变量名,其它的都不处理。
    442              EXTR_REFS 将变量作为引用提取。
    443         * ③ 前缀和数组键名之间会自动加上一个下划线。
    444         */
    445         $size = "large";
    446         $var_array = array("color1" => "blue",
    447                             "size"  => "medium",
    448                             "shape" => "sphere");
    449         extract($var_array, EXTR_PREFIX_SAME, "wddx");
    450         echo "$color1, $size, $shape,$wddx_size<br/>
    ";
    451         
    452         /*
    453         * 快速初始化数组
    454         * range()函数
    455         * array range ( mixed $start , mixed $limit [, number $step = 1 ] )
    456         */
    457         foreach (range(0, 12) as $number) {
    458             echo $number." ";
    459         }
    460         echo "<br/>";
    461         
    462         /*
    463         * array_fill()函数
    464         * array array_fill ( int $start_index , int $num , mixed $value )
    465         * 该函数用value参数的值将一个数组填充num个条目,键名由start_index参数指定的开始。
    466         * 插入元素的数量num必须大于 0。
    467         */
    468         $a = array_fill(5, 3, 'banana');
    469         $b = array_fill(-2, 4, 'pear');
    470         print_r($a);//Array ( [5] => banana [6] => banana [7] => banana ) 
    471         echo "<br/>";
    472         print_r($b);//Array ( [-2] => pear [0] => pear [1] => pear [2] => pear )
    473         
    474         /*
    475         * 在数组中茶轴值:array_search()
    476         * mixed array_search ( mixed $needle , array $haystack [, bool $strict = false ] )
    477         * 如果找到了 needle 则返回它的键,否则返回 FALSE。
    478         * ① 如果 needle 是字符串,则比较以区分大小写的方式进行。
    479         * ② 如果可选的第三个参数strict为TRUE,则该函数将在haystack中检查完全相同的元素。 
    480         */
    481         $array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');
    482         echo "<br/>".array_search('green', $array)."<br/>"; // $key = 2;
    483         
    484         /* 
    485         * 获取数组键函数array_keys
    486         * array array_keys ( array $input [, mixed $search_value = NULL [, bool $strict = false ]] )
    487         * 返回input里的所有键。
    488         * ① 如果指定了可选参数search_value,则只返回该值的键名。否则input数组中的所有键名都会被返回;
    489         * ② strict 判断在搜索的时候是否该使用严格的比较(===)。
    490         */
    491         $array = array(0 => 100, "color" => "red");
    492         print_r(array_keys($array));//Array ( [0] => 0 [1] => color ) 
    493         echo "<br/>";
    494         $array = array("blue", "red", "green", "blue", "blue");
    495         print_r(array_keys($array, "blue"));//Array ( [0] => 0 [1] => 3 [2] => 4 ) 
    496         echo "<br/>";
    497         $array = array("color" => array("blue", "red", "green"),
    498                         "size"  => array("small", "medium", "large"));
    499         print_r(array_keys($array));//Array ( [0] => color [1] => size ) 
    500         echo "<br/>";
    501         
    502         /*
    503         * 获取数组值函数:array_values()函数
    504         * array array_values ( array $input )
    505         * array_values() 返回 input 数组中所有的值并给其建立数字索引。
    506         */
    507         $array = array("size" => "XL", "color" => "gold");
    508         print_r(array_values($array));//Array ( [0] => XL [1] => gold ) 
    509         echo "<br/>";    
    510     ?>
    511     </body>
    512 </html>
  • 相关阅读:
    16.ajax_case08
    16.ajax_case07
    16.ajax_case06
    16.ajax_case05
    9.2 sun.py
    9.1 mongo_python.py
    pandas-如何得到某一个值所在的行
    [已解决]ValueError: row index was 65536, not allowed by .xls format
    [已解决]python FileNotFoundError: [WinError 3] for getsize(filepath)
    Tomcat6连接数设置:permsize
  • 原文地址:https://www.cnblogs.com/ningvsban/p/3618993.html
Copyright © 2020-2023  润新知