>  기사  >  백엔드 개발  >  PHP 배열 함수에 대한 기본 지식 요약

PHP 배열 함수에 대한 기본 지식 요약

墨辰丷
墨辰丷원래의
2018-06-02 11:39:081306검색

이 글은 주로 PHP 배열 함수에 대한 가장 기본적인 지식을 요약한 것입니다. 관심 있는 친구들이 참고할 수 있습니다.

배열은 매우 중요한 데이터 유형입니다. 다른 데이터 유형과 비교하면 구조에 가깝고 이 구조는 일련의 값을 저장할 수 있습니다. 배열은 하나의 변수 이름에 많은 값을 저장할 수 있으며, 첨자를 참조하여 값에 접근할 수 있습니다.

PHP에는 세 가지 배열 유형이 있습니다.
인덱스 배열 - 숫자 인덱스가 있는 배열
연관 배열 - 지정된 키가 있는 배열
다차원 배열 - 하나 이상의 배열을 포함하는 배열

1. 배열 만들기

array(key => value)

1. 인덱스 배열을 만듭니다

array() 함수를 사용하여 배열을 선언합니다. PHP는 비교적 유연하고 편리한 약한 유형의 언어입니다. 또한 직접 배열의 요소 값이 될 수도 있습니다. 인덱스는 자동으로 할당됩니다(인덱스는 0부터 시작).
예:

array("1" => "百度","2" => "阿里","3" => "腾讯");
或者是不使用键值:
array("百度","阿里","腾讯");
当然也可以写成:
$arr[0] = "百度";
$arr[1] = "阿里";
$arr[2] = "腾讯";

2. 연관 배열 만들기

연관 배열은 인덱스 배열의 키 이름과 같은 숫자만 될 수 없고 숫자 값일 수 있다는 점을 제외하면 인덱스 배열과 유사합니다. ​및 문자열 혼합 형식뿐만 아니라 배열이 연관 배열인지 판단하는 기준은 배열에 숫자가 아닌 키 이름이 있는지 여부입니다. 아니요, 관련이 있습니다.

array("Robin Li" => "Baidu","Jack Ma" => "Alibaba","Ma Huateng" => "Tencent");

3. 다차원 배열

array(array() , array()) 2차원 배열

배열의 길이 가져오기 - count() 함수

<?php
$arr = array("百度","阿里","腾讯");
echo count($arr);
?> //结果返回3(说明数组中有三个元素)

2. 배열 탐색

배열 요소의 값을 출력합니다. 인덱스 배열의 경우 for 및 foreach가 일반적으로 사용되며 연관 배열의 경우 foreach가 일반적으로 사용됩니다. 루프 이후의 결과를 인쇄하려면 print_r() 함수를 사용하거나 var_dump()를 사용하십시오.

1. 인덱스 배열 탐색

인덱스 배열의 모든 값을 탐색하고 출력하려면 for, foreach(array_expression as value), foreach(arrayexpressionaskey => $value) 루프를 사용할 수 있습니다. 다음:

Use for loop

<?php
$arr = array("百度","阿里","腾讯");
$arrlen = count($arr);//获取数组的长度
for ($i=0; $i <$arrlen ; $i++) { 
  $data[] = $arr[$i]; 
}
echo "<pre class="brush:php;toolbar:false">"; //换行显示
print_r($data);

인쇄 결과는 다음과 같습니다.
Array
(
[0] => Baidu
[1] => Ali
[2] => Tencent
)
foreach 루프를 사용하세요

<?php
$arr = array("百度","阿里","腾讯");
foreach ($arr as $value) {
  $data[] = $value;
}
echo "<pre class="brush:php;toolbar:false">"; //换行显示
print_r($data);//打印结果和上面一样

참고: 데이터 뒤에 배열 기호 []가 있습니다. 이유는 무엇입니까?

2. 연관 배열 탐색

연관 배열의 모든 값을 탐색하고 출력하려면 다음과 같이 foreach(array_expression as key=>value) 루프를 사용할 수 있습니다.

<?php
$arr = array("李彦宏" => "百度","马云" => "阿里","马化腾" => "腾讯");
foreach ($arr as $key => $value) {
  $data[$key] = $value;
}
echo "<pre class="brush:php;toolbar:false">"; //换行显示
print_r($data);

인쇄 결과는 다음과 같습니다.

Array
(
  [李彦宏] => 百度
  [马云] => 阿里
  [马化腾] => 腾讯
)

눈치채셨나요? 이때, 데이터 [$key] 뒤에는 무엇이 있나요? []
숫자 연관 배열 및 숫자 인덱스 배열 대신

3. 배열의 요소를 추가하고 삭제합니다.

첫 번째 매개 변수에
array_push(array, value1, value2...) 함수를 추가합니다. 배열 요소의 끝 배열의 끝에 하나 이상의 요소를 추가(푸시)하고 새 배열의 길이를 반환합니다.
이 함수는 array[]=value를 여러 번 호출하는 것과 동일합니다.

<?php
$arr = array("百度","阿里","腾讯");
array_push($arr,"知乎","微博");
echo "<pre class="brush:php;toolbar:false">"; //换行显示
print_r($arr);
//打印结果显示:
Array
(
  [0] => 百度
  [1] => 阿里
  [2] => 腾讯
  [3] => 知乎
  [4] => 微博
)

배열 요소 시작 부분의 증가
array_unshift(array,value1,value2,value3…) 함수는 배열에 새 요소를 삽입하는 데 사용됩니다. 새 배열의 값은 배열의 시작 부분에 삽입됩니다.

<?php
$arr = array("百度","阿里","腾讯");
array_unshift($arr,"知乎","微博");
echo "<pre class="brush:php;toolbar:false">"; //换行显示
print_r($arr);
//打印结果显示:
Array
(
  [0] => 知乎
  [1] => 微博
  [2] => 百度
  [3] => 阿里
  [4] => 腾讯
)

배열 요소 끝에서 삭제
array_pop(array) 함수는 배열의 마지막 요소를 삭제합니다.

<?php
$arr = array("百度","阿里","腾讯");
array_pop($arr);
echo "<pre class="brush:php;toolbar:false">"; //换行显示
print_r($arr);
打印结果显示:
Array
(
  [0] => 百度
  [1] => 阿里
)

배열 요소의 시작 부분에서 삭제
array_shift(array) 함수는 배열의 첫 번째 요소를 삭제하고 삭제된 요소의 값을 반환할 수 있습니다.

<?php
$arr = array("百度","阿里","腾讯");
array_shift($arr);
echo "<pre class="brush:php;toolbar:false">"; //换行显示
print_r($arr);
打印结果显示:
Array
(
  [0] => 阿里
  [1] => 腾讯
)

배열에서 중복 값 제거
array_unique(array) 함수는 배열에서 중복 값을 제거하고 결과 배열을 반환합니다.

<?php
$arr = array("百度","阿里","腾讯","百度","微博");
$data = array_unique($arr);
echo "<pre class="brush:php;toolbar:false">";
print_r($data);
打印结果显示:
Array
(
  [0] => 百度
  [1] => 阿里
  [2] => 腾讯
  [4] => 微博
)

4. 배열 요소 찾기

배열에 존재하는 값 검색
in_array(search,array,type)는 지정된 값이 배열에 있는지 확인합니다.
주어진 값 검색이 배열 배열에 존재하는 경우 true를 반환합니다. 세 번째 매개변수가 true로 설정되면 해당 요소가 배열에 존재하고 주어진 값과 동일한 데이터 유형을 갖는 경우에만 함수가 true를 반환합니다. 매개변수가 배열에서 발견되지 않으면 함수는 false를 반환합니다.

<?php
$arr = array("百度","阿里","腾讯");
while (in_array("百度", $arr)) {
  echo "已经找到";
  break;
} //输出已经找到

조건에 따라 배열에서 값을 제거합니다. array_slice(array,start,length,preserve)
start가 필요합니다. 수치. 검색할 요소의 시작 위치를 지정합니다. 0 = 첫 번째 요소.
값을 양수로 설정하면 앞에서 뒤로 가져옵니다.
값을 음수로 설정하면 시작의 절대값을 뒤에서 앞으로 가져옵니다. -2는 배열의 두 번째 요소부터 마지막 ​​요소까지 시작한다는 의미입니다.

length 可选。数值。规定被返回数组的长度。
如果该值设置为整数,则返回该数量的元素。
如果该值设置为负数,则函数将在举例数组末端这么远的地方终止取出。
如果该值未设置,则返回从 start 参数设置的位置开始直到数组末端的所有元素。

<?php
$arr = array("百度","阿里","腾讯","知乎","微博");
$data = array_slice($arr,0,4);
echo "<pre class="brush:php;toolbar:false">";
print_r($data);
打印结果显示:
Array
(
  [0] => 百度
  [1] => 阿里
  [2] => 腾讯
  [3] => 知乎
)

array_splice(array,start,length,array) 函数从数组中移除选定的元素,并用新元素取代它。该函数也将返回包含被移除元素的数组。

<?php
$arr1 = array("百度","阿里","腾讯");
$arr2 = array("知乎","微博");
array_splice($arr1,0,2,$arr2);
echo "<pre class="brush:php;toolbar:false">";
print_r($arr1);
打印结果显示:
Array
(
  [0] => 知乎
  [1] => 微博
  [2] => 腾讯
)

五、数组合并、拆分、比较

array_merge()函数将数组合并到一起,返回一个联合的数组。所得到的数组以第一个输入数组参数开始,按后面数组参数出现的顺序依次追加。

<?php
$arr1 = array("百度","阿里","腾讯");
$arr2 = array("知乎","微博");
$data = array_merge($arr1,$arr2);
echo "<pre class="brush:php;toolbar:false">";
print_r($data);
打印结果显示:
Array
(
  [0] => 百度
  [1] => 阿里
  [2] => 腾讯
  [3] => 知乎
  [4] => 微博
)

递归追加数组
array_merge_recursive()函数与array_merge()相同,可以将两个或多个数组合并到一起,形成一个联合的数组。两者之间的区别在于,当某个输入数组中的某个键已经存在于结果数组中时该函数会采取不同的处理方法。array_merge()会覆盖前面存在的键/值对,将其替换为当前输入数组中的键/值对,而array_merge_recursive()将两个值合并在一起,形成一个新的数组并以原有的键作为数组名。其形式为:

$arr= array(&#39;one&#39;=>&#39;C&#39;, &#39;one&#39;=>&#39;B&#39;); 
$arr1= array(&#39;three&#39;=>&#39;1&#39;, &#39;one&#39;=>&#39;2&#39;); 
$arr2= array_merge_recursive($arr, $arr1); 
echo "<pre class="brush:php;toolbar:false">";
print_r($arr2); 
打印结果显示:
Array
(
  [one] => Array
    (
      [0] => B
      [1] => 2
    )

  [three] => 1
)

合并两个数组
array_combine()函数会生成一个新数组,这个数组由一组提交的键和对应的值组成,其形式为:

$arr= array(&#39;A&#39;, &#39;B&#39;); 
$arr1= array(&#39;1&#39;, &#39;2&#39;); 
$arr2= array_combine($arr, $arr1);
echo "<pre class="brush:php;toolbar:false">";
print_r($arr2); 
打印结果显示:
Array
(
  [A] => 1
  [B] => 2
)

求数组的交集
array_intersect()函数返回一个保留了键的数组,这个数组只由第一个数组中出现的且在其他每个输入数组中都出现的值组成。其形式如下:

$arr= array(&#39;A&#39;, &#39;B&#39;, &#39;C&#39;, &#39;D&#39;); 
$arr1= array(&#39;A&#39;, &#39;B&#39;, &#39;E&#39;); 
$arr2= array(&#39;A&#39;, &#39;F&#39;, &#39;D&#39;); 
$arr3= array_intersect($arr, $arr1, $arr2); 
echo "<pre class="brush:php;toolbar:false">";
print_r($arr3); 
打印结果显示:
Array
(
  [0] => A
)

注意:只有在两个元素有相同的数据类型时,array_intersect()才会认为它们相等。

求关联数组的交集
array_intersect_assoc()与array_intersect()基本相同,只不过它在比较中还考虑了数组的键。因此,只有在第一个数组中出现,且在所有其他输入数组中也出现的键/值对才被返回到结果数组中。其形式如下:

$arr= array(&#39;a&#39;=>&#39;A&#39;, &#39;b&#39;=>&#39;B&#39;, &#39;c&#39;=>&#39;C&#39;, &#39;d&#39;=>&#39;D&#39;); 
$arr1= array(&#39;a&#39;=>&#39;A&#39;, &#39;c&#39;=>&#39;B&#39;, &#39;E&#39;); 
$arr2= array(&#39;a&#39;=>&#39;A&#39;, &#39;b&#39;=>&#39;F&#39;, &#39;d&#39;=>&#39;B&#39;); 
$arr3= array_intersect_assoc($arr, $arr1, $arr2); 
echo "<pre class="brush:php;toolbar:false">";
print_r($arr3); 
打印结果显示:
Array
(
  [a] => A
)

求关联数组的差集
函数array_diff_assoc()与array_diff()基本相同,只是它在比较时还考虑了数组的键,因此,只在第一个数组中出现而不在其他输入数组中出现的键/值对才会被返回到结果数组中。其形式如下:

$arr= array(&#39;a&#39;=>&#39;A&#39;, &#39;b&#39;=>&#39;B&#39;, &#39;c&#39;=>&#39;C&#39;, &#39;d&#39;=>&#39;D&#39;); 
$arr1= array(&#39;a&#39;=>&#39;A&#39;, &#39;b&#39;=>&#39;B&#39;, &#39;e&#39;=>&#39;E&#39;); 
$arr3= array_diff_assoc($arr, $arr1); 
echo "<pre class="brush:php;toolbar:false">";
print_r($arr3); 
打印结果显示:
Array
(
  [c] => C
  [d] => D
)

其他有用的数组函数
返回一组随机的键 array_rand()函数将返回数组中的一个或多个键。其形式为:

$arr= array(&#39;a&#39;=>&#39;A&#39;, &#39;b&#39;=>&#39;B&#39;, &#39;c&#39;=>&#39;C&#39;, &#39;d&#39;=>&#39;D&#39;); 
$arr1= array_rand($arr, 2); 
echo "<pre class="brush:php;toolbar:false">";
print_r($arr1);
打印结果显示:
 Array
(
  [0] => c
  [1] => d
) //每次刷新显示的结果都不一样

对数组中的值求和
array_sum()函数将数组内的所有值加在一起,返回最终的和,其形式如下:

$arr= array(&#39;A&#39;, 32, 12, &#39;B&#39;); 
$count= array_sum($arr); 
echo "<pre class="brush:php;toolbar:false">";
print_r($count);

打印结果显示:
44

如果数组中包含其他数据类型(例如字符串),这些值将被忽略。

划分数组
array_chunk()函数将数组分解为一个多维数组,这个多维数组由多个包含size个元素的数组所组成。其形式如下:

$arr= array(&#39;A&#39;, &#39;B&#39;, &#39;C&#39;, &#39;D&#39;); 
$arr1= array_chunk($arr, 2); 
echo "<pre class="brush:php;toolbar:false">";
print_r($arr1);

打印结果显示:

Array
(
  [0] => Array
    (
      [0] => A
      [1] => B
    )

  [1] => Array
    (
      [0] => C
      [1] => D
    )

)

处理数组时可调用函数有

array_filter(*array*,*callbackfunction*);
array_intersect_uassoc(*array1*,*array2*,*array3*...,*myfunction*)
array_intersect_ukey(*array1*,*array2*,*array3*...,*myfunction*)
array_reduce(*array*,*myfunction*,*initial*)
array_walk(*array*,*myfunction*,*userdata*...)
……

总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。

相关推荐:

php中实现进程锁与多进程的方法

PHP+MariaDB数据库操作基本技巧备忘总结

php实现操纵mysqli数据库的方法

위 내용은 PHP 배열 함수에 대한 기본 지식 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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