이 글은 주로 PHP 배열의 사용법을 소개하는데, 이는 특정 참조 가치가 있습니다. 이제 도움이 필요한 친구들이 참고할 수 있도록 공유합니다.
이 튜토리얼에서는 예제와 모범 사례를 통해 PHP에서 일반적으로 사용되는 배열 함수 목록을 살펴보세요. 모든 PHP 엔지니어는 이를 사용하는 방법과 이를 결합하여 더 간결하고 읽기 쉬운 코드를 작성하는 방법을 알아야 합니다.
또한 관련 링크에서 다운로드하여 팀과 공유할 수 있는 관련 샘플 코드 프레젠테이션을 제공하여 더욱 강력한 팀을 구축할 수 있습니다.
배열 키 이름과 키 값을 처리하는 몇 가지 기본 배열 함수부터 시작하겠습니다. 배열 함수의 멤버인 array_combine()은 한 배열의 값을 키로 사용하고 다른 배열의 값을 값으로 사용하여 완전히 새로운 배열을 만드는 데 사용됩니다.
<?php $keys = ['sky', 'grass', 'orange']; $values = ['blue', 'green', 'orange']; $array = array_combine($keys, $values); print_r($array); // Array // ( // [sky] => blue // [grass] => green // [orange] => orange // )
You 알아야 할 것은 array_values() 함수는 인덱스 배열 형태로 배열의 값을 반환하고, array_keys()는 주어진 배열의 키 이름을 반환하며, array_flip() 함수는 해당 함수를 교환하는 것입니다. 배열의 키 값과 키 이름:
<?php print_r(array_keys($array));// ['sky', 'grass', 'orange'] print_r(array_values($array));// ['blue', 'green', 'orange'] print_r(array_flip($array)); // Array // ( // [blue] => sky // [green] => grass // [orange] => orange // )
list() 함수, 정확히 말하면 함수가 아니라 언어 구조입니다. 단일 작업으로 배열의 값을 변경할 수 있는 변수 세트에 값을 할당합니다. 예를 들어 list() 함수의 기본 사용법은 다음과 같습니다.
<?php // 定义数组 $array = ['a', 'b', 'c']; // 不使用 list() $a = $array[0]; $b = $array[1]; $c = $array[2]; // 使用 list() 函数 list($a, $b, $c) = $array;
이 언어 구조는 preg_split()과 결합됩니다. 또는 #🎜 🎜#explode() 이 유형의 함수가 더 효과적입니다. 일부 값을 정의할 필요가 없으면 일부 매개변수 할당을 직접 건너뛸 수 있습니다.
$string = 'hello|wild|world'; list($hello, , $world) = explode('|', $string); echo $hello, ' ', $world;#🎜 🎜#또한 #🎜🎜 #list()은
foreach 순회에도 사용할 수 있습니다. 이 사용법은 다음 언어 구조를 더 잘 활용할 수 있습니다.
$arrays = [[1, 2], [3, 4], [5, 6]]; foreach ($arrays as list($a, $b)) { $c = $a + $b; echo $c, ', '; }#🎜 🎜#번역가의 참고: list() 언어 구성은 숫자로 색인된 배열에서만 작동하며 기본 색인은 0부터 시작하며 연관 배열에서는 사용할 수 없습니다. 설명서를 참조하세요.
그리고 extract() 함수를 사용하면 연관 배열을 변수(기호 테이블)로 내보낼 수 있습니다. 배열의 각 요소에 대해 해당 키 이름은 생성할 변수 이름으로 사용되며 변수 값은 해당 요소의 값이 됩니다.함수는 안전한 함수이므로 현재로서는<?php $array = [ 'clothes' => 't-shirt', 'size' => 'medium', 'color' => 'blue', ]; extract($array); echo $clothes, ' ', $size, ' ', $color;사용자 데이터 처리 시 참고 사항( 요청된 데이터 등)# 🎜🎜#extract()
EXTR_IF_EXISTS
및과 같은 더 나은 플래그 유형을 사용하는 것이 좋습니다. EXTR_PREFIX_ALL. extract() 함수의 역연산은 변수 이름으로 연관 배열을 만드는 데 사용되는 Compact() 함수입니다.
<?php $clothes = 't-shirt'; $size = 'medium'; $color = 'blue'; $array = compact('clothes', 'size', 'color'); print_r($array); // Array // ( // [clothes] => t-shirt // [size] => medium // [color] => blue // )#🎜 🎜#Filter function# 🎜🎜#PHP는 배열 필터링을 위한 멋진 기능을 제공합니다. 바로 array_filter()입니다. 함수의 첫 번째 매개변수로 처리할 배열을 사용하고, 두 번째 매개변수는 익명 함수입니다. 배열의 요소가 유효성 검사를 통과하도록 하려면 익명 함수가
true을 반환하고, 그렇지 않으면 false
을 반환합니다.<?php $numbers = [20, -3, 50, -99, 55]; $positive = array_filter($numbers, function ($number) { return $number > 0; }); print_r($positive);// [0 => 20, 2 => 50, 4 => 55]
ARRAY_FILTER_USE_KEY 또는 ARRAY_FILTER_USE_BOTH을 세 번째 매개변수로 사용하여 배열의 키 값을 사용할지 아니면 키 값과 키 이름을 모두 매개변수로 사용할지 지정할 수도 있습니다. 콜백 함수.
array_filter() 함수 없이 null 값을 제거하는 콜백 함수를 정의할 수도 있습니다.
<?php $numbers = [-1, 0, 1]; $not_empty = array_filter($numbers); print_r($not_empty);// [0 => -1, 2 => 1]array_unique()를 사용할 수 있습니다. 함수 배열에서 고유한 값 요소를 가져옵니다. 이 함수는 원래 배열에 있는 고유 요소의 키 이름을 유지합니다.
<?php $array = [1, 1, 1, 1, 2, 2, 2, 3, 4, 5, 5]; $uniques = array_unique($array); print_r($uniques); print_r($array); // Array // ( // [0] => 1 // [4] => 2 // [7] => 3 // [8] => 4 // [9] => 5 // )array_column() 함수는 다차원 배열(다차원)에서 지정된 열의 값을 가져올 수 있습니다. , 예를 들어 SQL 데이터베이스에서 답변을 얻거나 데이터를 가져오기 위한 CSV 파일입니다. 배열과 지정된 열 이름을 전달하기만 하면 됩니다.
<?php $array = [ ['id' => 1, 'title' => 'tree'], ['id' => 2, 'title' => 'sun'], ['id' => 3, 'title' => 'cloud'], ]; $ids = array_column($array, 'id'); print_r($ids);// [1, 2, 3]PHP 7부터 array_column은 객체를 포함하는 배열을 지원하기 시작하므로 더 강력해집니다. 따라서 Array를 처리할 때 모델이 더욱 쉬워집니다:
<?php $cinemas = Cinema::find()->all(); $cinema_ids = array_column($cinemas, 'id'); // php7 forever!배열 순회 처리array_map()을 사용하면 배열의 각 요소에 대해 콜백 메서드를 실행할 수 있습니다. 함수 이름이나 익명 함수를 전달하여 주어진 배열을 기반으로 새 배열을 얻을 수 있습니다:
<?php $cities = ['Berlin', 'KYIV', 'Amsterdam', 'Riga']; $aliases = array_map('strtolower', $cities); print_r($aliases);// ['berlin', 'kyiv, 'amsterdam', 'riga'] $numbers = [1, -2, 3, -4, 5]; $squares = array_map(function ($number) { return $number ** 2; }, $numbers); print_r($squares);// [1, 4, 9, 16, 25]이 함수에 대해 배열 키 이름과 키 값을 전달할 수 없다는 소문도 있습니다. 동시에 함수에 콜백을 추가하지만 지금은 이를 중단하겠습니다.
<?php $model = ['id' => 7, 'name' => 'James']; $res = array_map(function ($key, $value) { return $key . ' is ' . $value; }, array_keys($model), $model); print_r($res); // Array // ( // [0] => id is 7 // [1] => name is James // )하지만 이런 식으로 수행하는 것은 정말 보기 흉합니다. 대신 array_walk() 함수를 사용하는 것이 더 좋습니다. 이 함수는
array_walk()
에서는 새 배열을 생성하지 않고 원본 배열을 직접 수정합니다. 따라서 소스 배열로서 참조 전달 방법을 사용하여 배열의 값을 콜백 함수에 전달할 수 있으며 배열의 키 이름을 직접 전달할 수 있습니다.<?php $fruits = [ 'banana' => 'yellow', 'apple' => 'green', 'orange' => 'orange', ]; array_walk($fruits, function (&$value, $key) { $value = $key . ' is ' . $value; }); print_r($fruits);Array 연결 작업#🎜🎜 ##🎜🎜 #PHP에서 배열을 병합하는 가장 좋은 방법은 array_merge() 함수를 사용하는 것입니다. 모든 배열 옵션은 하나의 배열로 병합되며 동일한 키 이름을 가진 값은 마지막 값인
으로 덮어쓰여집니다.
<?php $array1 = ['a' => 'a', 'b' => 'b', 'c' => 'c']; $array2 = ['a' => 'A', 'b' => 'B', 'D' => 'D']; $merge = array_merge($array1, $array2); print_r($merge); // Array // ( // [a] => A // [b] => B // [c] => c // [D] => D // )
译注:有关合并数组操作还有一个「+」号运算符,它和 array_merge() 函数的功能类似都可以完成合并数组运算,但是结果有所不同,可以查看 PHP 合并数组运算符 + 与 array_merge 函数 了解更多细节。
为了实现从数组中删除不在其他数组中的值(译注:计算差值),使用 array_diff()。还可以通过 array_intersect() 函数获取所有数组都存在的值(译注:获取交集)。接下来的示例演示它们的使用方法:
<?php $array1 = [1, 2, 3, 4]; $array2 = [3, 4, 5, 6]; $diff = array_diff($array1, $array2); $intersect = array_intersect($array1, $array2); print_r($diff); // 差集 [0 => 1, 1 => 2] print_r($intersect); //交集 [2 => 3, 3 => 4]
使用 array_sum() 对数组元素进行求和运算,array_product 对数组元素执行乘积运算,或者使用 array_reduce() 处理自定义运算规则:
<?php $numbers = [1, 2, 3, 4, 5]; print_r(array_sum($numbers));// 15 print_r(array_product($numbers));// 120 print_r(array_reduce($numbers, function ($carry, $item) { return $$carry ? $carry / $item : 1; }));// 0.0083 = 1/2/3/4/5
为了实现统计数组中值的出现次数,可以使用 array_count_values() 函数。它将返回一个新数组,新数组键名为待统计数组的值,新数组的值为待统计数组值的出现次数:
41cd024259fee57a3f70060824ab3c97 2 // [banana] => 1 // [tree] => 3 // )
需要以给定值生成固定长度的数组,可以使用 array_fill() 函数:
8820f44454f0fd2ffffa31f308b79687 1, 'price' => 99, 'count' => 1], ['product_id' => 2, 'price' => 50, 'count' => 2], ['product_id' => 2, 'price' => 17, 'count' => 3], ]; $sum = array_sum(array_map(function ($product_row) { return $product_row['price'] * $product_row['count']; }, $order)); print_r($sum);// 250
正如你所看到的那样,掌握主要的数组函数可以是我们的代码更精简且易于阅读。当然,PHP 提供了比列出来的要多得多的数组函数,并且还提供了额外参数及标识参数,但是我觉得本教程中已经涵盖了 PHP 开发者应该掌握的最基本的一些。
以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!
相关推荐:
위 내용은 PHP 배열을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!