이제 배열에 대해 이야기해 보겠습니다
PHP 배열에는 3가지 유형이 있습니다
숫자 배열 숫자 ID 키가 있는 배열
연관 배열 배열의 각 ID 키는 값과 연결됩니다
다차원 배열 하나 이상의 배열을 포함하는 배열
배열에 대한 선언
<?php $a[5]; $a[5]={1,2,3,4,5}; ?>
C 언어와 같은 기존의 2가지 유형은 PHP에서 작동하지 않습니다
PHP 배열을 정의하는 데 사용되는 키워드 array
<?php $a=array(); ?>이것은 빈 배열을 정의합니다. 내부 요소는 동적으로 추가될 수 있습니다. 있는 만큼 크고 계속해서 추가할 수 있는데, 정말 멋지네요
<?php $a=array(); echo $a; ?>이런 식으로 a 유형을 인쇄하면 결과는 배열이 됩니다
그러나 이 경우에는 배열이 비어 있기 때문에
<?php $a=array(); echo $a[0]; ?>오류가 보고됩니다.
배열을 정의하는 방법에는 크게 두 가지가 있는데, 하나는 배열을 사용하는 것입니다
<?php $a=array(1,2,3,4,5); for($i=0;$i<count($a);$i++) echo $a[$i]."<br/>"; ?>count 키워드는 배열에 몇 개의 요소가 있는지 계산할 수 있습니다
또 다른 방법은 변수 첨자에 직접 값을 할당하는 것이며, 변수는 자동으로 배열이 됩니다
그러나 값은 아래 첨자 순서로 할당해야 합니다
<?php $a[0]='a'; $a[1]='b'; $a[2]='c'; for($i=0;$i<count($a);$i++) echo $a[$i]."<br/>"; ?>
또한 배열의 요소는 동일한 유형이 아닐 수 있습니다
<?php $a[0]='a'; $a[1]='b'; $a[2]='c'; $a[5]='d'; for($i=0;$i<count($a);$i++) echo $a[$i]."<br/>"; ?>매우 강력하다고 생각하지 않나요?
<?php $a=array(1,'b',"hello",1.0); for($i=0;$i<count($a);$i++) echo $a[$i]."<br/>"; ?>연관 배열은 일반 배열보다 더 강력합니다. 아래 첨자에 숫자를 사용할 필요는 없지만 직접 이름을 지정할 수 있습니다.
이것은 Java의 맵과 매우 유사한 키-값 관계입니다**
참고 => ->가 아니며, 내부의 작은따옴표와 큰따옴표를 서로 바꿀 수 있습니다.
키 바꾸기 => 값 키를 반복할 수 있지만 결과는 마지막 하나를 표시합니다.
<?php $a=array("a"=>1,'b'=>2,"c"=>3); echo $a["a"]."<br/>"; echo $a['b']."<br/>"; echo $a["c"]."<br/>"; ?>
print 2 3
위에서 언급한 연관배열의 정의도 있습니다 합격
<?php $a=array("a"=>1,'a'=>2,"c"=>3); echo $a["a"]."<br/>"; echo $a["c"]."<br/>"; ?>
그런데 다음은 틀렸습니다
<?php $a["a"]="hello"; $a["b"]="world"; echo $a["a"]."<br/>"; echo $a["b"]."<br/>"; ?>또한 숫자를 키로 사용할 수도 있습니다
<?php $a["a"]=>"hello"; $a["b"]=>"world"; echo $a["a"]."<br/>"; echo $a["b"]."<br/>"; ?>
는 따옴표 없이 출력할 수 있지만 PHP에는 이를 사용하지 말라는 메시지가 있습니다.
<?php $a["1"]="hello"; $a["2"]="world"; echo $a["1"]."<br/>"; echo $a["2"]."<br/>"; ?>
다차원 배열에 대해 이야기해 보겠습니다.
다차원 배열에서는 배열의 각 요소도 배열입니다. 하위 배열의 각 요소는 배열이 될 수도 있습니다.
<?php $a['a']="hello"; $a['b']="world"; echo $a[a]."<br/>"; echo $a [ b ]"; ?>
C에서 보면 이를 정의합니다. 언어는 단지 [2][3]일 뿐이며 배열에 몇 차원이 있는지는 중요하지 않습니다
마찬가지로 다차원 배열의 요소도 여러 유형일 수 있습니다
이것도 이렇게
<?php $a=array(array('a',1,2),array("hello",3,1.1,)); echo $a[0][0]; ?>
각 하위 배열의 요소 개수가 같을 필요는 없어 C 언어보다 좋습니다.
일반 배열과 마찬가지로, 다차원 배열도 이런 식으로 정의할 수 있지만 누구도 이렇게 할 것이라고는 생각하지 않습니다. .
<?php $a=array(array('a',1,2),array("hello",3,1.1,2,'a')); echo $a[0][0]; ?>
이 2차원 배열은 2개의 행과 4개의 열로 구성된 a[2][4]입니다. 이는 매우 규칙적입니다.
열의 요소 수만 유의하세요. 루프를 사용하여 인쇄할 수 있으며 C 언어에서는 이 문장을 고려할 필요가 없습니다
<?php $a[0][0]="hello00"; $a[0][1]="hello01"; $a[0][2]="hello02"; $a[0][3]="hello03"; $a[1][0]="hello10"; $a[1][1]="hello11"; $a[1][2]="hello12"; $a[1][3]="hello13"; for($i=0;$i<2;$i++){ for($j=0;$j<4;$j++) echo $a[$i][$j]." "; echo "<br/>"; } ?>
가 hello를 인쇄합니다.
연관관계 때문에 좀 어지러워 보이는데
이렇게 할 필요는 없고 다음과 같이 하면 훨씬 더 명확해집니다.
<?php $a=array('a'=>array('a'=>"hello",'b'=>"world"),'b'=>array('one'=>1,'two'=>2,'three'=>3)); echo $a['a']['a']; ?>
출력해 보세요.
<?php $a=array('a'=>array("hello","world"),'b'=>array(1,2,3)); echo $a['a'][0]."<br/>".$a['b'][2]; ?>절대 이런 식으로 놀지 마세요
hello 3틀렸습니다
<?php $a=array(array('a'=>"hello",'b'=>"world"),array('one'=>1,'two'=>2,'three'=>3)); echo $a['a']; ?>
제가 언급한 내용은 위는 모두 2차원 배열이므로 3차원 이상을 정의하는 방법은 매우 간단합니다
인쇄 1
<?php $a=array(array(array(1,2,3))); echo $a[0][0][0]; ?>
4판
<?php $a=array(array(array(1,2,3)),array(array(4,5,6))); echo $a[1][0][0]; ?>
5판
보시고 어지러우신 분들도 계시겠지만
<?php $a=array(array(array(1,2,3),array(4,5,6)),array(array(7,8,9))); echo $a[0][1][1]; ?>예를 들어 $a [0][1][1]; 가장 오른쪽 대괄호 안의 요소는 배열의 가장 안쪽 요소를 나타냅니다.
$ a=array(array(array(1,2,3),array(4,5,6) )),array(array(7,8,9)));
최대 3개의 레이어로 나누어지며, 가장 오른쪽이 가운데 레이어입니다. 괄호 안의 요소는 가장 안쪽 레이어
를 나타내며, 왼쪽의 대괄호는 외부 레이어를 의미하며
사실 여러 레이어가 여러 차원 배열로 나누어져 있다는 것을 좀 더 살펴보면 이해하실 수 있습니다.
게다가, 3차원 배열에 대해 너무 많이 알 필요는 없습니다. 일반적으로 2차원 배열을 마스터할 수 있습니다.
앞에서는 foreach 루프에 대해 자세히 언급하지 않았습니다. 사실 foreach 루프를 사용하는 것이 가장 좋습니다. 1차원 배열 순회
출력
<?php $a=array(1,"hello",'a'); foreach($a as $value) echo $value."<br/>"; ?>아주 간단하지 않나요?
$value는 임시 값일 뿐입니다. 배열 요소를 저장하는 데 사용되는 변수, 원하는 대로 이름을 지정할 수 있습니다
프록시 변수에 배열을 제공하고 출력을 돕도록 하는 것과 같습니다
1 hello a
이렇게 하면 배열 요소가 출력되지 않습니다
출력만 됩니다
<?php $a=array(1,"hello",'a'); foreach($a as $value) echo $a."<br/>"; ?>
위 내용은 정식으로 시작되는 PHP 학습 내용입니다(3). PHP 중국어 웹사이트(www.php.cn)를 주목하세요!