>  기사  >  백엔드 개발  >  PHP 학습 요약 배열

PHP 학습 요약 배열

不言
不言원래의
2018-04-03 16:29:061447검색

개요

우리는 PHP 프로그래밍 언어에서 배열이 매우 자주 사용되며 거의 모든 스크립트에서 사용된다는 것을 알고 있습니다. PHP에는 우리가 사용할 수 있도록 배열을 조작하기 위한 뛰어난 함수가 많이 포함되어 있습니다. 이 기사에서는 향후 사용자의 편의를 위해 이러한 배열 함수의 사용을 분류하고 요약할 것입니다.

Create

1. range()range()

建立一个指定范围的数组:

$arr1 = range(0, 10);     # array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

$arr2 = range(0, 10, 2);  # array(0, 2, 4, 6, 8, 10)

$arr3 = range('a', 'd');  # array('a', 'b', 'c', 'd')

$arr4 = range('d', 'a');  # array('d', 'c', 'b', 'a')
2. compact()

创建一个包含变量名和它们值的数组:

$number = 10;
$string = "I'm PHPer";
$array  = array("And", "You?");
$result = compact("number", "string", "array"); # array('number'=>10, 'string'=>"I'm PHPer", 'array'=>array("And", "You?"))
3. array_combine()

创建一个用一个数组的值作为其键、另一个数组的值作为其值的数组:

$key    = array("1", "3", "5", "7", "9");
$value  = array("I", "Am", "A", "PHP", "er");
$result = array_combine($number,$array);     # array('1'=>I, '3'=>'Am', '5'=>'A', '7'=>'PHP', '9'=>'er')

遍历

1. for 循环
$arr = range(0, 10);
for($i = 0; $i < count($arr);  $i++) {
    echo $arr[$i];
}
缺点:只能遍历索引数组。
2. while 循环
$products = array(&#39;apple&#39;=>3, 'milk'=>6, 'eggs'=>10);
while(list($product, $quantity) = each($products)) {
    echo $product . '-' . $quantiry;
}
缺点:遍历完成之后,不能对数组进行第二次遍历(数组内部指针指向了最后一个元素)。
3. foreach 循环
$products = array('apple'=>3, 'milk'=>6, 'eggs'=>10);
foreach($products as $product => $quantity) {
    echo $product . '-' . $quantiry;
}

操作 key 或 value

unset() —  删除数组成员或数组
in_array() — 检查数组中是否存在某个值
array_key_exists() — 检查给定的键名或索引是否存在于数组中
array_search() — 在数组中搜索给定的值,如果成功则返回相应的键名

$array = array(1, 2, 3);
unset($array); # array()

$fruit = array('apple' => 'goold','orange' => 'fine','banana' => 'OK');
if(in_array('good', $fruit)) {
    echo 'Exit';
}

$search_array = array('first' => 1, 'second' => 4);
if (array_key_exists('first', $search_array)) {
    echo "Exit";
}

$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');
$key = array_search('green', $array); # $key = 2;

array_keys() — 返回数组中部分的或所有的键名
array_values() — 返回数组中所有的值

$array  = array('apple'=>'good', 'orange'=>'fine', 'banana'=>'ok');
$keys   = array_keys($array);   # array('apple', 'orange', 'banana')
$values = array_values($array); # array('good', 'fine', 'ok')

array_unique() — 移除数组中重复的值

$input  = array(4, '4', '3', 4, 3, '3');
$result = array_unique($input); # array(4, '3')

array_flip() — 交换数组中的键和值

$input  = array('oranges', 'apples', 'pears');
$result = array_flip($input); # array('oranges'=>0, 'apples'=>1, 'pears'=>2)

array_count_values() 统计数组中所有的值

$input  = array(1, 'hello', 1, 'world', 'hello');
$result = array_count_values($input); # array('1'=>2, 'hello'=>2, 'world'=>1)

排序

1. sort()rsort()

对数组进行升序或降序排序:

$fruits = array();
sort($fruits);  # array('apple', 'banana', 'lemon', 'orange')
rsort($fruits); # array('orange', 'lemon', 'banana', 'apple')
2. asort()arsort()

对关联数组(按元素的值)进行升序或降序排序并保持索引关系:

$fruits = array('d'=>'lemon', 'a'=>'orange', 'b'=>'banana', 'c'=>'apple');
asort($fruits);  # array('c'=>''apple', 'b'=>''banana', 'd'=>'lemon', 'a'=>'orange')
arsort($fruits); # array('a'=>'orange', 'd'=>'lemon', 'b'=>''banana', 'c'=>''apple')
3. ksort()

对数组按照键名排序:

$fruits = array('d'=>'lemon', 'a'=>'orange', 'b'=>'banana', 'c'=>'apple');
ksort($fruits); # array('a'=>'orange', 'b'=>'banana', 'c'=>'apple', 'd'=>'lemon')
4. shuffle()

随机打乱数组排序:

$numbers = range(1, 5);
shuffle($numbers); # array(3, 2, 5, 1, 4)

栈与列队

array_push() — 将一个或多个单元压入数组的末尾(入栈)
array_pop() — 将数组最后一个单元弹出(出栈)

$stack = array('orange', 'banana');

array_push($stack, 'apple", 'raspberry'); # array('orange', 'banana', 'apple', 'raspberry')

$fruit = array_pop($stack);  #array('orange', 'banana', 'apple')

array_unshift() — 在数组开头插入一个或多个单元
array_shift() — 将数组开头的单元移出数组

$queue = array('orange', 'banana');

array_unshift($queue, 'apple", 'raspberry'); # array('apple', 'raspberry', 'orange', 'banana')

$fruit = array_shift($queue); # array('raspberry', 'orange', 'banana')

分割、填充、合并

array_slic() — 从数组中取出一段
array_splice() — 把数组中的一部分去掉并用其它值取代

$input  = array('a', 'b', 'c', 'd', 'e');
$result = array_slice($input, 2); # array('c', 'd', 'e')

$input = array('red', 'green', 'blue', 'yellow');
array_splice($input, 2, 1); # array('red', 'green', 'yellow')

array_pad() — 以指定长度将一个值填充进数组

$input  = array(12, 10, 9);
$result = array_pad($input, 5, 0);   # array(12, 10, 9, 0, 0)
$result = array_pad($input, -7, -1); # array(-1, -1, -1, -1, 12, 10, 9)

array_fill() — 用给定的值填充数组

$a = array_fill(5, 3, 'a');     # array(5=>'a', 6=>'a', 7=>'a')
$b = array_fill(-2, 3, 'pear'); # array(-2=>'a', 0=>'a', 1=>'a')

array_fill_keys() — 使用指定的键和值填充数组

$keys   = array('foo', 5, 10, 'bar');
$result = array_fill_keys($keys, 'a'); # array('foo'=>'a', 5=>'a', 10=>'a', 'bar'=>'a')

array_merge() — 合并一个或多个数组

$array1 = array('data0');
$array2 = array('data1');
$result = array_merge($array1, $array2); # array('data0', 'data1')

其他函数

1. array_walk()

使用用户自定义函数对数组中的每个元素做回调处理(改变原来数组):

$a = array(1, 2, 3, 4, 5);
array_walk($a, function(&$value, $key) {
    ++$value;
}); # array(2, 3, 4, 5, 6)
2. array_map()

将回调函数作用到给定数组的单元上(不改变原来数组,同时生成新的数组作为结果):

$a = array(1, 2, 3, 4, 5);
$b = array_map(function($item) {
    return $item + 1;
}, $a); # array(2, 3, 4, 5, 6)
3. array_rand()

从数组中随机取出一个或多个元素:

$input  = array('apple', 'banana', 'lemon', 'orange');
$result = array_rand($input, 2); # array('banana', 'lemon')
4. array_diff()
지정된 범위의 배열을 만듭니다.

$array1 = array('a' => 'green', 'red', 'blue', 'red');
$array2 = array('b' => 'green', 'yellow', 'red');
$result = array_diff($array1, $array2); # array('blue')
2. compact()

변수 이름이 포함된 배열을 만듭니다. 및 해당 값 배열:

rrreee3. array_combine()

한 배열의 값을 키로 하고 다른 배열의 값을 값으로 사용하여 배열을 만듭니다.

rrreeeTraverse

1. for 루프

rrreee

단점: 인덱스 배열만 순회할 수 있습니다.
2. while Loop

rrreee

단점: 순회가 완료된 후 배열을 두 번째로 순회할 수 없습니다(배열의 내부 포인터는 마지막 요소를 가리킵니다). .
3. foreach loop🎜rrreee🎜operate key or value🎜🎜unset() — 배열 멤버 또는 배열 삭제
in_array( ) — 배열에 값이 있는지 확인
array_key_exists() — 주어진 키나 인덱스가 배열에 있는지 확인
array_search () — 배열에서 주어진 값을 검색하고, 성공하면 해당 키 이름을 반환합니다.🎜rrreee🎜array_keys() — 배열의 일부 또는 전체 키 이름을 반환합니다.
array_values() — 배열의 모든 값을 반환합니다🎜rrreee🎜array_unique() — 배열의 중복 값을 제거합니다🎜rrreee🎜array_flip( ) — 배열의 키와 값을 교환합니다🎜rrreee🎜<code>array_count_values() 배열의 모든 값을 계산합니다🎜rrreee🎜Sort🎜🎜1. () 및 rsort()🎜🎜 배열을 오름차순 또는 내림차순으로 정렬합니다: 🎜rrreee🎜2. asort()arsort() 🎜🎜 연관 배열 정렬 (요소 값 기준) 오름차순 또는 내림차순으로 정렬하고 인덱스 관계 유지: 🎜rrreee🎜3. ksort()🎜🎜 키 이름별로 배열 정렬: 🎜rrreee🎜4. shuffle( )🎜🎜배열 정렬을 무작위로 섞습니다. 🎜rrreee🎜Stack 및 queue🎜🎜array_push() — 하나 이상의 셀을 끝까지 밀어 넣습니다. 배열(push)
array_pop() — 배열의 마지막 셀을 팝합니다. 🎜rrreee🎜array_unshift() — 시작 부분에 하나 이상의 셀을 삽입합니다. 배열
array_shift() — 배열의 시작 부분에 있는 셀을 배열 밖으로 이동합니다🎜rrreee🎜Split, fill, merge🎜🎜array_slic() — 배열에서 세그먼트 제거
array_splice() — 배열의 일부를 제거하고 다른 값으로 교체 🎜rrreee🎜array_pad() — 배열 채우기 지정된 길이의 값을 가진 배열 🎜rrreee🎜array_fill() — 주어진 값으로 배열 채우기 ​​🎜rrreee🎜array_fill_keys() — 주어진 값으로 배열 채우기 지정된 키 및 값 ​​🎜rrreee🎜array_merge() — 하나 또는 여러 개의 배열 병합🎜rrreee🎜기타 함수🎜🎜1 array_walk()🎜🎜사용자 정의 사용 배열의 각 요소에 대해 콜백 처리를 수행하는 함수(원래 배열 변경): 🎜rrreee🎜2 . array_map()🎜🎜 주어진 배열(원래 배열)의 셀에 콜백 함수를 적용합니다. 변경되지 않으며 결과로 새 배열이 생성됩니다.): 🎜rrreee🎜3. array_rand() 🎜🎜배열에서 하나 이상의 요소를 무작위로 꺼냅니다. >array_diff()🎜🎜배열 값의 차이 계산: 🎜rrreee🎜관련 권장 사항: 🎜🎜🎜 PHP 학습 요약용 변수🎜🎜🎜🎜PHP 문자열 요약🎜                                                                                   

위 내용은 PHP 학습 요약 배열의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:PHP 학습 요약 변수다음 기사:PHP 학습 요약 변수