NoteDeep
本页讨论
  • php数组是什么?
  • 数组排序
  • 数组的队列函数,指针操作
  • 从文件载入数组
  • 数组的经典操作实例(百试不爽)

php数组是什么?

PHP 中的数组实际上是一个有序映射。映射是一种把 values 关联到 keys 的类型。此类型在很多方面做了优化,因此可以把它当成真正的数组,或列表(向量),散列表(是映射的一种实现),字典,集合,栈,队列以及更多可能性。由于数组元素的值也可以是另一个数组,树形结构和多维数组也是允许的。

数组的两种类型:
  • 索引数组 - 带有数字索引的数组
  • 关联数组 - 带有指定键的数组

索引数组

关联数组

初始化:
初始化:
索引是自动分配的(索引从 0 开始):
$cars=array("Volvo","BMW","SAAB");

或者也可以手动分配索引:
$cars[0]="Volvo"; $cars[1]="BMW"; $cars[2]="SAAB";
$array = [
"foo" => "bar",
"bar" => "foo",
];

或者:
$age['Peter']="35"; $age['Ben']="37"; $age['Joe']="43";
遍历:
遍历:
$arrlength=count($cars); for($x=0;$x<$arrlength;$x++) { echo $cars[$x]; echo "<br>"; }
// Volvo
// BMW
// SAAB
foreach($age as $x=>$x_value) { echo "Key=" . $x . ", Value=" . $x_value; echo "<br>"; }
// Key= Bill , Value= 35
// Key= Steve , Value= 37
// Key= Peter , Value= 43

数组的排序

PHP 数组排序函数:
  • sort() - 升序排序
  • rsort() - 降序数组
  • asort() - 根据值,升序排序
  • ksort() - 根据键,升序排序
  • arsort() - 根据值,降序排序
  • krsort() - 根据键,降序排序
举例:
$numbers= [3,5,1,22,11]; sort($numbers);
// [1,3,5,11,22]

$cars= ["Volvo","BMW","SAAB"]; rsort($cars);
// ["Volvo","SAAB","BMW"]

$age=["Bill"=>"35","Steve"=>"37","Peter"=>"43"]; asort($age);
// ["Bill"=>"35","Steve"=>"37","Peter"=>"43"]

$age=["Bill"=>"35","Steve"=>"37","Peter"=>"43"]; ksort($age);
// ["Bill"=>"35","Peter"=>"43","Steve"=>"37"]

$age=["Bill"=>"35","Steve"=>"37","Peter"=>"43"]; arsort($age);
// ["Peter"=>"43","Steve"=>"37","Bill"=>"35"];
$age=["Bill"=>"35","Steve"=>"37","Peter"=>"43"]; krsort($age);
// ["Steve"=>"37","Peter"=>"43","Bill"=>"35"]

数组的队列函数,指针操作

常用函数
  • each() 先返回当前元素,再后移指针
  • current() 返回数组中的当前元素。
  • end() 返回最后一个元素,并将指针指向最后一个元素。
  • reset() 将指针指向第一个元素。
  • pos() 返回指针当前的位置
  • next() 返回下一个元素,再后移指针
  • prev() 返回上一个元素,再前移指针

  • array_shift() 删除数组中首个元素,并返回被删除元素的值。
  • array_unshift() 在数组开头插入一个或多个元素。
  • array_push() 将一个或多个元素插入数组的末尾(入栈)。
  • array_pop() 删除数组的最后一个元素(出栈)。

从文件载入数组


file函数:读取整个文件,每行作为一个元素载入到数组。
$data = file("pathto/data.txt");


数组的经典操作实例


$value = end($arr);
while($value) {
echo $value;
$value = prev($arr);
}
$staff = array( 
array("小张","男",24), 
array("小王","女",25), 
array("小李","男",23) 
); 
while(list($keys, $value) = each($staff)) {  list($name, $sex, $age) = $value;  echo $name . $sex . $age;  } 
function array_paginate($array, $length) { $arr = []; if(count($array) < $length) { $arr[] = $array; } else { for ($i=0; $i < ceil(count($array)/$length); $i++) { $arr[] = array_slice($array, $length*($i), $length); } } return $arr; }

















评论列表

    php数组是什么?
    数组的排序
    数组的队列函数,指针操作
    从文件载入数组
    数组的经典操作实例