博客列表 >PHP数组使用

PHP数组使用

BARRY
BARRY原创
2020年10月20日 21:18:06666浏览

数组的种类与定义,访问方式

  • 数组分为———数字索引数组 ,关联数组 ,多维数组。
  • 数字索引数组 ,索引数组存储一系列经过组织的单个或多个值,其中的每个值都可以通过使用一个无符号整数值进行访问。
  • 关联数组,是一种具有特殊索引方式的数组。不仅可以通过整数来索引它,还可以使用字符串或者其他类型的值(除了NULL)来索引它。
  • 多维数组,数据结构中的概念, 二维数组以上的数组,既非线性也非平面的数组成为多维数组。

    代码

    ```php
    $arr = array(“php”,”mysql”,”java”); //或者 $arr = [“php”,”mysql”,”java”]; 效果是一样的

print_r($arr);
echo ‘<hr>‘;

//2.array(1 => “XXX”, 2 => “XXX”)函数声明数组,指定数组的下标
$arr2 = array(“name” => “小明”,”age” => “25”,”sex” => “男”);

print_r($arr2);
echo ‘<hr>‘;

//二维数组
$arr3 = array(
“php”=>array(“php”,”thinkphp”),
“js”=>array(“M”=>”js”,”N”=>”jQuery”,”vue”,”react”),
“html”=>array(10=>”html”,”html5”)
);

print_r($arr3);
echo ‘<hr>‘;
//访问arr3数组中的js 下面的vue元素
echo $arr3[“js”][0];

  1. 运行结果:![](https://img.php.cn/upload/image/328/495/160/1603199873594172.png)
  2. ------------
  3. ####数字的遍历
  4. ```php
  5. //数组的遍历------------------------------------------------------------------
  6. //1.while 循环遍历
  7. $arr = array("php","mysql","java");
  8. while(true){
  9. printf('[%s] =>%s <br>',key($arr),current($arr));
  10. if(next($arr)) continue;
  11. else break;
  12. }
  13. echo '<hr>';
  14. //2.for 循环遍历
  15. $student = ['name'=>'king','age'=> '28','salary'=>'8000'];
  16. for($i = 0;$i < count($student);$i++){
  17. printf('[%s] =>%s <br>',key($student),current($student));
  18. next($student);
  19. }
  20. echo '<hr>';
  21. //3.foreach 循环
  22. foreach($student as $k => $v){
  23. echo $v.'<br>';
  24. }
  25. echo '<hr>';
  26. //数组的解构
  27. $goods = [
  28. ['name' => 'iphone12','brand' => '苹果','price' => '¥6800'],
  29. ['name' => 'MacBookPro','brand' => '苹果','price' => '¥12888'],
  30. ['name' =>'iPad','brand' => '苹果','price' => '¥4850'],
  31. ];
  32. foreach($goods as list('brand' => $brand,'name' => $name, 'price' => $price)){
  33. printf('brand=%s,name=%s,price=%s<br>',$brand,$name,$price);
  34. }

运行结果:

数组函数

  1. $user = ['id' => 1,'name' => '小胖','name' => '小胖','grade' => '1年级','score' =>95];
  2. // 1. array_values 获取数组的值
  3. print_r(array_values($user)); echo '<hr>';
  4. // 2. array_keys 获取数组的键
  5. print_r(array_keys($user)); echo '<hr>';
  6. //3.array_key_exists() 检索给定的键名是否存在数组中,它的返回值是布尔值。
  7. echo array_key_exists('grade',$user) ? $user['grade'] : '不存在'; echo '<hr>';
  8. //4.in_array("key",$arr);在数组中检索key是否存在,返回布尔值。
  9. var_dump(in_array('id',$user)); echo '<hr>';
  10. //5,array_search("value",$arr); 在数组中检索value ,如果存在返回键名
  11. echo array_search('小胖',$user); echo '<hr>';
  12. //6.array_unique($arr); 去重。
  13. print_r($user); echo '<hr>';
  14. //7.array_sun($arr); 求和。
  15. $numbers = [2,4,6,3,8];
  16. var_dump(array_sum($numbers)); echo '<hr>';
  17. //8.array_push(),入栈,将一个或多个元素压入数组栈的末尾
  18. $phone = ['xiaomi','huawei'];
  19. array_push($phone,'iphone');
  20. print_r($phone) ; echo '<br>';
  21. //9.array_pop() ,出栈,将数组栈的最后一个元素弹出
  22. array_pop($phone);
  23. print_r($phone); echo '<hr>';
  24. //array_shift 函数删除数组中第一个元素,并返回被删除元素的值。
  25. //array_unshift 函数用于向数组插入新元素。新数组的值将被插入到数组的开头。
  26. //10. array_column获取二维数组某一列的集合
  27. $class = [
  28. ['name'=>'zhangsan','chinese'=>'89','math'=>'95','english'=>'88'],
  29. ['name'=>'lisi','chinese'=>'91','math'=>'86','english'=>'90'],
  30. ['name'=>'laowang','chinese'=>'99','math'=>'76','english'=>'33'],
  31. ];
  32. $names = array_column($class,'name');
  33. print_r($names); echo '<hr>';
  34. //11. array_change_key_case($arr,CASE_UPPER) 改变数组键的大小写
  35. $ev=["a"=>"Lamp","db"=>"mysql","language"=>"PHP"];
  36. print_r(array_change_key_case($ev,CASE_UPPER)); //大写
  37. echo "<br/>";
  38. print_r(array_change_key_case($ev,CASE_LOWER)); //小写
  39. echo "<hr>";
  40. //12. array array_diff_assoc ($array1 ,$array2 [, array $ ... ] ) 返回一个数组,
  41. //该数组包括了所有在 array1 中但是不在任何其它参数数组中的值键不同也算
  42. $color1=['a'=>'green','b'=>'brown','c'=>'red'];
  43. $color2=['a'=>'green','yellow','red'];
  44. print_r(array_diff_assoc($color1,$color2));

运行结果:

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议