PHP 数组(Array)

157 阅读2分钟
  • 数组

    • 就是将多个"数据"放在一起,排成一个有序序列,这个序列作为一个整体(里面包括了多个数据), 就称为"数组"。

    • 下标的可用值可以使用整数或字符串。


  • 数组常用函数
    • max():获取一个数组中的最大值
    • min():获取一个数组中的最小值
    • count():获取一个数组的元素个数
    • in_array():判断一个数据是否在指定数组中。 语法形式: $b= in_array( $数组,数据); // 结果 true 或 false
    • range():生成某个范围的连续值的数组 比如 range(3, 9) 会得到数组: array(3, 4.5,6, 7,8, 9);
    • array_keys():取出一个数组中的所有“键”并放入一个索引数组中。
    • array_values():取出一个数组中的所有“值”并放入一个索引数组中。
    • array_push():将一个或多个数据放入一个数组的“末端”。
    • array_ pop():将一个数组的最后一个单元删除,并返回该单元的值。
    • array_ reverse():将一个数组的所有单元的顺序进行反转(最前的放最后,最后的放最前)

  • 整数下标的特性 可以使用任意整数,也可以不显式使用下标,此时默认就是整数下标。 而且,从前往后,每一个没有使用下标的单元,系统给其分配的下标为之前所用过的整数下标的最大值+1。
<?php
  // 分别对应的下标
  $arr = array(
    'a' => 'abc',            // 'a'
    'def',            // 0
    10,               // 1
    5 => 20,          // 5
    'b' => 22,               // 'b'
    30                // 6
  );

  • PHP中,有如下几个函数,可以针对数组指针进行相应操作:
    • $re = current($arr1); // 取得数组中当前指针所在单元的值;
    • $re = key($arr1); // 取得数组中当前指针所在单元的键(下标) ;
    • $re = next($arr1); // 将数组中的指针往后移动一个位置,并取得新位置上的值;
    • $re = prev($arr1); // 将数组中的指针往前移动一个位置,并取得新位置上的值;
    • $re = end($arr1); // 将数组中的指针移动到最后一个位置,并取得新位置上的值;
    • $re = reset($arr1); // 将数组中的指针移动到最前一个位置,并取得新位置上的值;
<?php
  // 分别对应的下标
  $arr = array(
    'a' => 'abc',            // 'a'
    'def',            // 0
    10,               // 1
    5 => 20,          // 5
    'b' => 22,               // 'b'
    30                // 6
  );

  // foreach 便利 $key => $value
  foreach ($arr as $key => $value) {
    echo $key . '=>' . $value;
  }
  // foreach 便利 $key
  foreach ($arr as $key) {
    echo $key;
  }
  // foreach 便利 $value
  foreach ($arr as $value) {
    echo $value;
  }

  // 快捷获取属性
  echo current($arr); // 'abc'
  echo key($arr); // 'a' 
  next($arr); // 指针往后移动一位
  echo current($arr); // 'def'
  echo key($arr); // '0' 
  end($arr); // 指定移动到最后
  echo current($arr); // 30
  echo key($arr); // 6
  reset($arr); // 指针回到第一个
  echo current($arr); // 'abc'
  echo key($arr); // 'a' 

  // for 循环便利
  $len = count($arr);
  for ($i = 0; $i < $len; $i++) {
    $key = key($arr);
    $value = current($arr);
    echo '<br>' . $key . '=>' . $value;
    next($arr);
  }
  /*
  a=>abc
  0=>def
  1=>10
  5=>20
  b=>22
  6=>30
  */
?>

  • 数组创建使用方式:
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <?php
  // 定义数组
  $info1 = array('dzm', 18, '男');
  $info2 = array('name'=>'dzm', 'age'=>18, 'gender'=>'男');

  // 新版本中上面两种方法还可以这么写 ---- 推荐
  $info1 = ['dzm', 18, '男'];
  $info2 = ['name'=>'dzm', 'age'=>18, 'gender'=>'男'];
  
  // 给数组某项赋值
  $info1[0] = 'xyq';
  $info2['age'] = 19;

  // 使用数组(使用单项)
  echo $info1[0]; // xyq
  echo $info2['name']; // dzm
  echo $info2['age']; // 19

  // 整体输出数组
  print_r($info1); // Array ( [0] => xyq [1] => 18 [2] => 男 )
  print_r($info2); //  Array ( [name] => dzm [age] => 19 [gender] => 男 )
  ?>
</body>
</html>