PHP经验分享PHPPHP实战

php中数组的操作

2019-02-18  本文已影响4人  羽翼的翼

数组分为两种类型

索引数组

通过索引来操作数组

1, array(添加数组的成员, 成员类型不限)

count($arr)  求出数组arr的length长度

<?php

  $arr=array(1,2,3,true,"abc");

    // 通过索引取值

    echo$arr[4];// "abc"

    echo$arr[3];// 本来应该是true,但是输出为了1

    // php中遍历数组

    // 在php中小数点是拼接字符的意思  这里的length调用错误

    /* for($i = 0; $i < $arr.length; $i++) { */

    // 使用count方法能够计算当前数组的长度

for($i=0;$i<count($arr);$i++) {

  // 打印每一项的值

  echo$arr[$i]."";// 使内容之间有些距离

    }

    print_r($arr);

    /*

        Array(

            [0] => 1

            [1] => 2

            [3] => 3

            [4] => 1

            [5] => abc

        )

    */

?>

2,中括号的方式 ,[ ]

// 1.判断当前数组是否已经存在,如果不存在则先创建,再将元素添加到数组第一个元素位置

// 2.如果数组已经存在,那么就将当前元素添加到数组中--追加

$suzu[]='abg';

print_r($suzu);// 输出结果 Array ( [0] => abg )

关联数组

1、以键值对的方式描述数据,类似于js中的字面量对象

2、语法: array(value, value)

3、获取关联数组中的成员:通过key来获取数组中的成员

<?php

  $arr=array(

      "name"=>"yiyang",

      "age"=>20,

      "gender"=>true

    );

    echo$arr["gender"];// 1

    // 打印数组,使用print_r( )的方法

    print_r($arr);

/*

        Array(

            [name] => yiyang

            [age] => 20

            [gender] => 1

        )

    */

    /* 遍历关联数组的方法 */

遍历关联数组的方法

/*

    foreach(数组对象 as 键 => 值) {

  ...

    }

*/

    foreach($arras$key=>$value) {

  echo$key.":".$value."</br>";

    }

    /*  => 输出

        name:yiyang

        age:20

        gender:1

    */

    // 简洁语法

    foreach($arras$value) {

echo$value."</br>";

    }

?>

所有的数组本质上都是关联数组, foreach方法也可以操作索引数组;

如果通过空的中括号赋值,会自动追加和排序,还会变成混合数组

操作数组的方法

1、如果没有设置key 系统会自动生成索引。索引会取到之前的最大索引+1

2、如果添加元素的时候设置key,那么就没有索引

$arr3=array(

1,

2,

'name'=>'jack',

3,

'age'=>14

  );

print_r($arr3);

// 输出结果:

Array(

[0]=>1

[1]=>2

[name]=>jack

[2]=>3   

[age]=>14

)

3、count( )  计算数组的长度length

4、unset( )  使用数组删除某一项会有一点点小问题

它也可以用来删除数组中的某个成员。但是删除了数组的元素之后,并不会对数组元素的索引产生影响,元素还会保留之前的索引。意味着它只是删除了索引位置的元素,并没有动态的改变数组的长度。

<?php

  $arr=[1,2,3,4,5];

    print_r($arr);

    unset($arr[2])

echo'<hr/>';

    print_r($arr);

    /*

        之前: Array([0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5)

        现在: Array([0] => 1 [1] => 2 [3] => 4 [4] => 5)

    */

    // 索引和值都没有,变成了稀疏的了

?>

深度数组 / 二维数组

<?php

  /* $arr = array(

        1, 2, 3,

      "name" => "tylor",

      array()

    ); */

  // 描述学生对象

  $arr=array(

        // 描述第一个学生对象的数据

      "name"=>array(

    "name"=>"tylor",

  "age"=>20

       ),

      array(

    "name"=>"Bluce",

  "age"=>18

       )

    );

    print_r($arr);

/* Array(

            [0] => Array(

                    [name] => tylor

                    [age] => 20

                    )

            [1] => Array(

                    [name] => Bluce

                    [age] => 18

                    )

            )

    */

    // 通过嵌套循环输出当前的数组

    foreach($arras$key=>$value) {

  // 二维数组的遍历

  // print_r($value); 两个内层数组

  foreach($valueas$subkey=>$subvalue) {

  echo$subkey.":".$subvalue."<br/>";

  }

    }

    /* ==> 输出

        name:tylor

        age:20

        name:Bluce

        age:18

    */

?>

上一篇下一篇

猜你喜欢

热点阅读