이 글은 주로 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 // )
Simplified code
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_map()
과 유사하게 동작하지만 작동 원리는 완전히 다릅니다. 먼저 배열은 참조로 전달되므로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() 函数。它将返回一个新数组,新数组键名为待统计数组的值,新数组的值为待统计数组值的出现次数:
<?php $things = ['apple', 'apple', 'banana', 'tree', 'tree', 'tree']; $values = array_count_values($things); print_r($values); // Array // ( // [apple] => 2 // [banana] => 1 // [tree] => 3 // )
生成数组
需要以给定值生成固定长度的数组,可以使用 array_fill() 函数:
<?php $bind = array_fill(0, 5, '?'); print_r($bind);
根据范围创建数组,如小时或字母,可以使用 range() 函数:
<?php $letters = range('a', 'z'); print_r($letters); // ['a', 'b', ..., 'z'] $hours = range(0, 23); print_r($hours); // [0, 1, 2, ..., 23]
为了实现获取数组中的部分元素 - 比如,获取前三个元素 - 使用 array_slice() 函数:
<?php $numbers = range(1, 10); $top = array_slice($numbers, 0, 3); print_r($top);// [1, 2, 3]
排序数组
首先谨记 PHP 中有关排序的函数都是 引用传值 的,排序成功返回 true 排序失败返回 false。排序的基础函数是 sort() 函数,它执行排序后的结果不会保留原索引顺序。排序函数可以归类为以下几类:
a 保持索引关系进行排序
k 依据键名排序
r 对数组进行逆向排序
u 使用用户自定义排序规则排序
你可以从下表看到这些排序函数:
a | k | r | u | |
---|---|---|---|---|
a | asort | arsort | uasort | |
k | ksort | krsort | ||
r | arsort | krsort | rsort | |
u | uasort | usort |
数组函数的组合使用
数组处理的艺术是组合使用这些数组函数。这里我们通过 array_filter() 和 array_map() 函数仅需一行代码就可以完成空字符截取和去控制处理:
<?php $values = ['say', ' bye', '', ' to', ' spaces ', ' ']; $words = array_filter(array_map('trim', $values)); print_r($words);// ['say', 'bye', 'to', 'spaces']
依据模型数组创建 id 和 title 数据字典,我们可以结合使用 array_combine() 和 array_column() 函数:
<?php $models = [$model, $model, $model]; $id_to_title = array_combine( array_column($models, 'id'), array_column($models, 'title') ); print_r($id_to_title);
译注:提供一个 可运行的版本。
为了实现获取出现频率最高的数组元素,我们可以使用 array_count_values()、arsort() 和 array_slice() 这几个函数:
<?php $letters = ['a', 'a', 'a', 'a', 'b', 'b', 'c', 'd', 'd', 'd', 'd', 'd']; $values = array_count_values($letters); arsort($values); $top = array_slice($values, 0, 3); print_r($top);
还可以轻易的通过 array_sum() 和 array_map() 函数仅需数行就能完成计算订单的价格:
<?php $order = [ ['product_id' => 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

PHP는 현대 웹 개발, 특히 컨텐츠 관리 및 전자 상거래 플랫폼에서 중요합니다. 1) PHP는 Laravel 및 Symfony와 같은 풍부한 생태계와 강력한 프레임 워크 지원을 가지고 있습니다. 2) Opcache 및 Nginx를 통해 성능 최적화를 달성 할 수 있습니다. 3) PHP8.0은 성능을 향상시키기 위해 JIT 컴파일러를 소개합니다. 4) 클라우드 네이티브 애플리케이션은 Docker 및 Kubernetes를 통해 배포되어 유연성과 확장 성을 향상시킵니다.

PHP는 특히 빠른 개발 및 동적 컨텐츠를 처리하는 데 웹 개발에 적합하지만 데이터 과학 및 엔터프라이즈 수준의 애플리케이션에는 적합하지 않습니다. Python과 비교할 때 PHP는 웹 개발에 더 많은 장점이 있지만 데이터 과학 분야에서는 Python만큼 좋지 않습니다. Java와 비교할 때 PHP는 엔터프라이즈 레벨 애플리케이션에서 더 나빠지지만 웹 개발에서는 더 유연합니다. JavaScript와 비교할 때 PHP는 백엔드 개발에서 더 간결하지만 프론트 엔드 개발에서는 JavaScript만큼 좋지 않습니다.

PHP와 Python은 각각 고유 한 장점이 있으며 다양한 시나리오에 적합합니다. 1.PHP는 웹 개발에 적합하며 내장 웹 서버 및 풍부한 기능 라이브러리를 제공합니다. 2. Python은 간결한 구문과 강력한 표준 라이브러리가있는 데이터 과학 및 기계 학습에 적합합니다. 선택할 때 프로젝트 요구 사항에 따라 결정해야합니다.

PHP는 서버 측에서 널리 사용되는 스크립팅 언어이며 특히 웹 개발에 적합합니다. 1.PHP는 HTML을 포함하고 HTTP 요청 및 응답을 처리 할 수 있으며 다양한 데이터베이스를 지원할 수 있습니다. 2.PHP는 강력한 커뮤니티 지원 및 오픈 소스 리소스를 통해 동적 웹 컨텐츠, 프로세스 양식 데이터, 액세스 데이터베이스 등을 생성하는 데 사용됩니다. 3. PHP는 해석 된 언어이며, 실행 프로세스에는 어휘 분석, 문법 분석, 편집 및 실행이 포함됩니다. 4. PHP는 사용자 등록 시스템과 같은 고급 응용 프로그램을 위해 MySQL과 결합 할 수 있습니다. 5. PHP를 디버깅 할 때 error_reporting () 및 var_dump ()와 같은 함수를 사용할 수 있습니다. 6. 캐싱 메커니즘을 사용하여 PHP 코드를 최적화하고 데이터베이스 쿼리를 최적화하며 내장 기능을 사용하십시오. 7

PHP가 많은 웹 사이트에서 선호되는 기술 스택 인 이유에는 사용 편의성, 강력한 커뮤니티 지원 및 광범위한 사용이 포함됩니다. 1) 배우고 사용하기 쉽고 초보자에게 적합합니다. 2) 거대한 개발자 커뮤니티와 풍부한 자원이 있습니다. 3) WordPress, Drupal 및 기타 플랫폼에서 널리 사용됩니다. 4) 웹 서버와 밀접하게 통합하여 개발 배포를 단순화합니다.

PHP는 현대적인 프로그래밍, 특히 웹 개발 분야에서 강력하고 널리 사용되는 도구로 남아 있습니다. 1) PHP는 사용하기 쉽고 데이터베이스와 완벽하게 통합되며 많은 개발자에게 가장 먼저 선택됩니다. 2) 동적 컨텐츠 생성 및 객체 지향 프로그래밍을 지원하여 웹 사이트를 신속하게 작성하고 유지 관리하는 데 적합합니다. 3) 데이터베이스 쿼리를 캐싱하고 최적화함으로써 PHP의 성능을 향상시킬 수 있으며, 광범위한 커뮤니티와 풍부한 생태계는 오늘날의 기술 스택에 여전히 중요합니다.

PHP에서는 약한 참조가 약한 회의 클래스를 통해 구현되며 쓰레기 수집가가 물체를 되 찾는 것을 방해하지 않습니다. 약한 참조는 캐싱 시스템 및 이벤트 리스너와 같은 시나리오에 적합합니다. 물체의 생존을 보장 할 수 없으며 쓰레기 수집이 지연 될 수 있음에 주목해야합니다.

\ _ \ _ 호출 메소드를 사용하면 객체를 함수처럼 호출 할 수 있습니다. 1. 객체를 호출 할 수 있도록 메소드를 호출하는 \ _ \ _ 정의하십시오. 2. $ obj (...) 구문을 사용할 때 PHP는 \ _ \ _ invoke 메소드를 실행합니다. 3. 로깅 및 계산기, 코드 유연성 및 가독성 향상과 같은 시나리오에 적합합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기
