PHP数组相关部分知识

1.创建并输出数组

(1)相同数据类型的数组
$attr=array(1,2,3,4,5);
print_r($attr);
echo "<br>";
$sttr1=array("a","b","c","d");
print_r($sttr1);
echo "<br>";
(2)创建关联数组
$sttr2=array("one"=>1,"two"=>2,"three"=>3);
print_r($sttr2);

结果:

2.统计数组中元素个数 count()函数

$sttr2=array("one"=>1,"two"=>2,"three"=>3);
echo count($sttr2);//输出3

3.向数组中添加元素 $sttr[]="";

$sttr1=array("a","b","c","d");
$sttr1[]="e";
print_r($sttr1);

结果:

4.将数组中指定索引位置的元素替换 $array[n]="";

$sttr1=array("a","b","c","d");
$sttr1[2]="e";
print_r($sttr1);

结果:

5.获取数组中最后一个元素 array_pop()函数;

$sttr=array("a","b","c","d");
$sttr1=array_pop($sttr);
print_r($sttr1);//输出d

6.去除数组中的重复元素  array_unique()函数

$sttr=array("a","b","c","d","b","c");
$sttr1=array_unique($sttr);
print_r($sttr1);

结果:

7.对数组中的元素进行随机抽取 rand()函数

$sttr=array("a","b","c","d","b","c");
$r=rand(0,5);
echo "随机取到的元素是:".$sttr[$r];

8.二维数组的输出   print_r($sttr[键值名])

$sttr=array("one"=>array("a","b"),"two"=>array("c","d"),"three"=>array("e","f"));
print_r($sttr["one"]);

结果:

9.获取数组当前的键名和值  用foreach()遍历

$sttr=array("one"=>111,"two"=>222,"three"=>3333);
foreach($sttr as $key=>$value) { echo $key;//输出键名 }
echo "<br>";
foreach($sttr as $key=>$value) { echo $value;//输出值 }

结果:

10.检测数组中是否存在某个值  array_key_exists(键名,数组名)函数

$sttr=array("one"=>111,"two"=>222,"three"=>3333);
if(array_key_exists('one',$sttr))
{
    echo "存在";
}
else
{
    echo "不存在";
}

11.合并数组  array_merge()函数

$sttr=array("one"=>111,"two"=>222,"three"=>3333);
$sttr1=array("a"=>444,"b"=>666,"c"=>777);
$sttr2=array_merge($sttr,$sttr1);
print_r($sttr2);

结果:

12.for循环遍历,只能遍历索引数组

$attr = array(1,2,3);
for($i=0;$i<count($attr);$i++)
{
  echo $attr[$i]."<br>";
}

13.foreach遍历,索引关联都可以遍历

$attr = array(1,2,3);
$attr1 = array("one"=>1,"two"=>2,"3"=>3);

foreach($attr as $v)
{
  echo $v."<br>";
}

foreach($attr1 as $k=>$v)
{
  echo "{$k}--{$v}<br>";
}


14.each()和list()配合着来遍历数组

$attr1 = array("one"=>1,"two"=>2,"3"=>3);
var_dump(each($attr1)); //取数组里面当前指针指向的元素
如果需要数组中所有数据,需要一步一步的写
var_dump(each($attr1));
var_dump(each($attr1));
$attr = array(1,2,3);
list($a,$b,$c)=$attr; //将右侧数组里面的元素赋值给参数列表里面的变量 
echo $a,$b,$c;
用each()和list()结合着遍历数组:
$attr1 = array("one"=>1,"two"=>2,"3"=>3);

while(list($k,$v) = each($attr1)) 
{ echo "{$k}--{$v}<br>"; }

15.使用指针的方式来遍历数组

$attr1 = array("one"=>1,"two"=>2,"3"=>3)
echo current($attr1); //取指针指向的当前元素的value值

echo key($attr1); //取指针指向的当前元素的key
next($attr1); //将指针向下调一个


prev($attr1); //将指针向上调一个


end($attr1); //将指针调向最后一个元素


reset($attr1); //将指针复位

指针思想遍历集合:

$attr1 = array("one"=>1,"two"=>2,"3"=>3);

for($i=0;$i<count($attr1);$i++)
{
echo key($attr1);
next($attr1);
}

do
{
echo key($attr1);
}
while(next($attr1))

16获取数组的长度 - count() 函数 count() 函数用于返回数组的长度(元素的数量):

<?php
$cars=array("沃尔沃","宝马","丰田");
echo count($cars);
?>


17.数组的排序:

1.sort() - 对数组进行升序排列

$sttr=array("2","1","3");
sort($sttr);
foreach($sttr as $aa)
{
  echo $aa;
}

//输出123

2.rsort() - 对数组进行降序排列

$sttr=array("2","1","3");
rsort($sttr);
foreach($sttr as $aa)
{
  echo $aa;
}

//输出321

3.asort() - 根据关联数组的值,对数组进行升序排列

$age=array("Peter"=>"37","Ben"=>"35","Joe"=>"43");
asort($age);
foreach($age as $aa)
{
  echo $aa;
}

4.ksort() - 根据关联数组的键,对数组进行升序排列

$age=array("5"=>"35","7"=>"37","2"=>"43");
ksort($age);

foreach($age as $aa)
{
  echo $aa;
}

5.arsort() - 根据关联数组的值,对数组进行降序排列

$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
arsort($age);

foreach($age as $aa)
{
  echo $aa;
}

6.krsort() - 根据关联数组的键,对数组进行降序排列

$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
krsort($age);
foreach($age as $aa)
{
  echo $aa;
}
原文地址:https://www.cnblogs.com/binbinyouli123/p/6562014.html