PHP数组的基本运用

定义数组

什么是PHP中的数组

PHP中的数组是一种用于存储多个值的数据结构。它可以包含不同类型的值,如整数、字符串、对象等,并使用一个唯一的键来访问每个值。

怎么定义数组

array()来定义数组
赋值定义
短数定义:([])

数组的类型

在PHP中数组有两种主要类型:索引数组和关联数组
索引数组:

索引数组:

索引数组使用数字作为键,从0开始递增。可以通过索引来访问数组中的元素。

$name[0]='吴嘉庆';
$name[1]='老毕灯';
$name[2]='反骨仔';
var_dump($name);

运行结果
在这里插入图片描述

关联数组:

$age = array("name"=>"吴嘉庆","jiji"=>"老毕灯","major"=>"反骨仔");
echo $age["name"];
echo $age["jiji"];
echo $age["major"];

运行结果
在这里插入图片描述

怎么区分两者

最简单的就是看下标是否从0开始,从0开始就是索引数组,反之就是关联数组。

遍历数组

可以用来遍历数组的方法有:
foreach 循环;for 循环;while 循环;等等
今天就来介绍一下最常用的foeach循环

$info = ['id'=>1,'name'=>'懒羊羊','age'=>18];
foreach($info as $k=>$v){
echo $k.':'.$v.'';
};

运行结果
在这里插入图片描述
当然foreach还可以嵌套循环,来遍历多维数组。
for循环

<?php
$a=0;
$b=1;
echo $a.'<br>';
echo $b.'<br>';
for($i=1;$i<=15;$i++){
$c=$a+$b;
$a=$b;
$b=$c;
echo $c.'<br>';
}
?>

运行结果
在这里插入图片描述
这是著名的斐波那契问题,由于技术不到家使用for循环来解决。最简单的解决办法是递归。

预定义数组

$‘_GET` 是一个关联数组,包含通过 GET 方法传递给当前脚本的参数和值。它的键是参数的名称,值是参数的值。
$_POST 被广泛应用于收集表单数据,在HTML form 标签的指定该属性:method = “post”
$_REQUEST用于收集HTML表单提交的数据。
$_COOKIE 是一个关联数组,包含 通过 HTTP cookie 传递给当前脚本的内容。
$_SESSION 是一个关联数组,包含当前脚本中的所有 session 内容。
$_FILES 是一个关联数组,包含通过 HTTP POST 方法上传给当前脚本的文件内容。
$GLOBALS 是一个关联数组, 包含对当前脚本全局 范围内定义的所有变量。

数组里的函数

count():返回数组中元素的个数。

$a = array("fas", "sfsaf", "fdga");
$b = count($a);
echo $b; 

在这里插入图片描述

array_merge():将一个或多个数组合并为一个数组。

$a = array("fas", "sfsaf", "fdga");
$b=array('4','5','6');
$c = array_merge($a, $b);
print_r($c); 

在这里插入图片描述

array_push():将一个或多个元素添加到数组末尾。

$a = array("fas", "sfsaf", "fdga");
array_push($a,'4','5');
print_r($a);

在这里插入图片描述

array_pop():删除并返回数组的最后一个元素。

$a = array("apple", "banana", "orange");
$b = array_pop($a);
echo $b;

在这里插入图片描述

array_shift():删除并返回数组的第一个元素。

$a = array("apple", "banana", "orange");
$b = array_shift($f);
echo $b;

在这里插入图片描述

array_unshift():在数组开头插入一个或多个元素。

$a = array("apple", "banana", "orange");
array_unshift($a, "1", "2");
print_r($a); 

在这里插入图片描述

in_array():检查数组中是否存在某个值。

$a = array("apple", "banana", "orange");
if (in_array("banana",$a)){
echo "存在";
}else{echo "不存在";
}

在这里插入图片描述

array_key_exists():检查数组中是否存在指定的键名。

$a = array("apple"=>1, "banana"=>2, "orange"=>3);
if (array_key_exists("banana",$a)){
echo "存在";
}else{echo "不存在";
}

在这里插入图片描述

array_search():在数组中搜索给定值,并返回对应的键名。

$a = array("apple", "banana", "orange");
$b = array_search("banana", $a);;
echo $b; 

在这里插入图片描述

array_slice():从数组中返回选定的元素。

$a = array("apple", "banana", "orange", "grape", "kiwi");
$b = array_slice($a, 1, 3);
print_r($b); 

在这里插入图片描述

array_splice():从数组中移除选定的元素并用新元素替换它们。

$a = array("apple", "banana", "orange", "grape", "kiwi");
array_splice($a, 2, 1, "kiwi");
print_r($a); 

在这里插入图片描述

array_reverse():将数组中的元素顺序颠倒。

$a = array("apple", "banana", "orange");
$b =array_reverse($a);
echo implode(", ", $b); 

在这里插入图片描述

array_unique():移除数组中的重复元素。

$a = array("apple", "banana", "orange","apple", "banana", "orange");
$b =array_unique($a);
echo implode(", ", $b); 

在这里插入图片描述

sort():对数组进行升序排序。

$a = array("5", "10", "8");
sort($a);
echo implode(", ", $a); 

在这里插入图片描述

rsort():对数组进行降序排序。

$a = array("5", "10", "8");
rsort($a);
echo implode(", ", $a); 

在这里插入图片描述

asort():根据关联数组的值进行升序排序,保持键值关系。

$info = array('id'=>1,'name'=>2,'age'=>3);
asort($info);
echo implode(", ", $info);

在这里插入图片描述

ksort():根据关联数组的键进行升序排序,保持键值关系。

$info = array('id'=>1,'name'=>2,'age'=>3);
ksort($info);
echo implode(", ", $info);

在这里插入图片描述

array_values():返回数组中所有的值,重新索引数组。

$a = array("apple", "banana", "orange");
$b = array_values($a);
echo implode(", ", $b); 

在这里插入图片描述

array_keys():返回数组中所有的键名。

$a = array("apple", "banana", "orange");
$b =  array_keys($a);
echo implode(", ", $b); 

在这里插入图片描述

***array_map():将回调函数作用到给定数组的每个元素上,并返回处理后的数组。

$numbers = array(1, 2, 3, 4, 5);
$squaredNumbers = array_map(function($num) {
    return $num * $num;
}, $numbers);
echo implode(", ", $squaredNumbers);  // 输出:1, 4, 9, 16, 25

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值