PHP에서 다차원 배열을 사용합니다. PHP 예제의 배열은 다차원 배열을 채웁니다.




이번 강의에서는 PHP에서 배열 작업의 가능성, 배열 선언, 배열 유형: 다차원 및 연관 배열에 대해 다룹니다.

  1. 숫자 인덱스가 있는 배열
  2. $fruits="사과"; $fruits="배"; $fruits="주황색"; $fruits="살구";

    이 배열 초기화 변형은 현재 실제로 사용되지 않습니다. 배열 작업에는 다음 변형이 사용됩니다.

  3. 연관 배열
  4. 이 배열 생성 옵션은 배열 객체를 사용합니다.

    $fruits = array(1 => "사과", 2 => "배", 3 => "오렌지", 4 => "살구"); // PHP 5.4부터 $fruits = array[ 1 => "사과", 2 => "배", 3 => "오렌지", 4 => "살구" ];

    배열 요소에 접근하기

    1 2 3 4 5 6 7 8 $fruits [ 0 ] = "사과" ; $fruits [ 1 ] = "배" ; $fruits [ 2 ] = "주황색" ; $fruits [ 3 ] = "살구" ; 에코 "배열의 첫 번째 요소는 ". $과일 [ 0 ] . "
    " ; 에코 "배열의 두 번째 요소는 ". $과일 [ 1 ] . "
    " ; 에코 "배열의 세 번째 요소는 ". $과일 [ 2 ] . "
    " ;

    $fruits="사과"; $fruits="배"; $fruits="주황색"; $fruits="살구"; echo "배열의 첫 번째 요소는 "입니다. $과일."
    "; echo "배열의 두 번째 요소는 ". $fruits 입니다."
    "; echo "배열의 세 번째 요소는 ". $fruits 입니다."
    ";

    프로그램을 실행한 결과는 다음과 같습니다.

    중요한:연관 배열의 요소 인덱스는 숫자가 아니라 단어(유형 )

    예를 들어보자:

    예:학생의 이름, 성, 나이 값으로 학생 배열을 만듭니다. 배열 요소의 값을 표시합니다.

    $student = array("이름" => John, "성" => Smith, "나이" => 20); 에코 "사용자 이름" . $학생["이름"] . "


    ";

    $student["Name"] = "존"; $student["surname"] = "스미스"; $student["나이"] = 20; 에코 "사용자 이름" . $학생["이름"] . "
    "; echo "사용자 이름 " . $student["성"] . "
    "; echo "사용자 연령 " . $student["Age"] . "
    ";

    결과:

    중요한:문자열 키(인덱스)는 항상 따옴표로 묶어야 합니다.

    키가 없는 인덱스 배열:

    또한 배열의 인덱스는 일반적으로 값으로 배열을 초기화할 때 생략될 수 있다는 점에 유의해야 합니다. 그런 다음 우리는 배열 수집(수집 개체):

    $student = array ("John" , "Smith" , 20 ) ;

    $student = array("존","스미스", 20);

    이 경우 인터프리터 자체는 0부터 시작하는 숫자 인덱스를 할당합니다.

    유형 변환 및 요소 덮어쓰기.
    var_dump() 프로시저 사용에 유의하세요.

    1 2 3 4 5 6 7 8 9 "a" , "1" => "b" , 2 => "c" , 2 => "d" , ) ; var_dump ($my_array ) ; ?>

    "a", "1"=> ​​​​"b", 2 => "c", 2 => "d",); var_dump($my_array); ?>

    결과:

    배열(3) ( => 문자열(1) "a" => 문자열(1) "b" => 문자열(1) "d" )

    사용 다차원 배열및 해당 요소에 대한 액세스 구성

    1 2 3 4 5 6 7 8 9 10 11 12 "1" , 2 => 2 , "다중" => 배열 ( "1_1" => "1_1" ) ) ; var_dump ($array_odnom [ "첫 번째" ] ) ; var_dump ($array_odnom [ 2 ] ) ; var_dump ($array_odnom [ "다중" ] [ "1_1" ] ) ; ?>

    "1", 2 => 2, "다중" => array("1_1" => "1_1")); var_dump($array_odnom["첫 번째"]); var_dump($array_odnom); var_dump($array_odnom ["다중"]["1_1"]); ?>

    결과:

    문자열(1) "1" int(2) 문자열(3) "1_1"

    예: 3 x 2 크기의 2차원 배열을 만듭니다. 첫 번째 행의 값인 "1_1", "1_2", "1_3"으로 채웁니다. 두 번째 줄: "2_1", "2_2", "2_3". 배열의 첫 번째 요소 표시


    성능:
    1 2 3 4 5 6 7 8 9 10 11 12 $array_odnom = 배열 ​​( 1 => 배열 ( 1 => "1_1" , 2 => "1_2" , 3 => "1_3" ) , 2 => 배열 ( 1 => "2_1" , 2 => "2_2" , 3 => "2_3" ) , ) ; echo $array_odnom [ 1 ] [ 1 ] ;

    $array_odnom = 배열(1 => 배열(1 => "1_1", 2 => "1_2", 3 => "1_3"), 2 => 배열(1 => "2_1", 2 => "2_2" , 3 => "2_3")),); 에코 $array_onenom;

    php2_1 작업: 3 x 3 2D 배열 만들기 - 피타고라스 곱셈표의 왼쪽 상단(1, 2, 3; 4, 6, 8...)



    실험실 작업:
    어떤 종류의 광고가 있고 이 광고를 보내야 하는 여러 사람이 있다고 가정해 보겠습니다. 이렇게 하려면 광고 콘텐츠를 공백으로 만드세요. 그 안에는 사람 이름 배열과 이벤트 배열 등 다양한 변경 매개변수가 있습니다. 최종 공지사항의 한 가지 버전을 화면에 표시합니다. 연관 배열을 사용하여 배열을 정의할 수도 있습니다.

    광고 템플릿을 사용하고 색상을 따르십시오.

    빨간색 - 배열.
    갈색 - 숫자변수.
    파란색은 상수입니다.

    친애하는 (th), Ivan Ivanovich!
    우리는 당신을 초대합니다 오픈 데이.
    이벤트 날짜: 5월 12일.
    감사합니다, 바실리.


    코드 추가:
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 // 상수 선언정의("서명" , "감사합니다, 바샤") ; // 수신자 이름 배열$names = 배열 ​​(... ) ; // 이벤트 배열$events = 배열 ​​( "op_doors" => "오픈데이", "vistavka" => "전시회" , ... ) ; $str = "여보, $names 님!
    "
    ; $str .= ...; $str .= ...; 에코 ...;

    // 상수 선언 정의("SIGN","감사합니다, Vasya"); // 수신자 이름 배열 $names = array(...); // 이벤트 배열 $events = array("op_doors" => "open day", "vistavka" => "exhibition", ...); $str = "$name 여러분!
    "; $str .= ...; $str .= ...; 에코 ...;

우리는 계속해서 배열을 연구합니다. 이전 기사에서 우리는 이미 배열을 선언하는 방법을 배웠습니다. 알아낸 것: 그것이 무엇을 위한 것인지, 어디에 사용될 수 있는지; 다차원 및 연관 배열에 대해 알게되었습니다. 이제 배열 요소에 대한 반복에 대해 이야기할 시간입니다.
종종 배열의 모든 요소에 대해 반복하고 해당 요소로 작업을 수행해야 하는 경우가 있습니다.

사이클을 사용하거나 사용하지 않고 다양한 방법으로 이를 수행할 수 있습니다. 예를 들어, 지난 기사에서는 연관 배열의 모든 키를 가져와서 루프를 사용하여 반복하고 표시했습니다. 각각. 여기서는 루프를 사용하여 배열 요소를 반복하는 주제에 대해 다루지 않았습니다. 이는 별도의 주제로 다룰 가치가 있기 때문입니다.

오늘은 배열의 요소를 반복하는 방법에 대해 이야기하겠습니다. 충분한 수의 새로운 기능을 알게 될 것입니다. 그럼, 시작해 볼까요!

먼저 루프를 사용하여 배열 요소를 반복하는 방법에 대해 이야기해 보겠습니다.

이를 위해 3가지 유형의 사이클이 사용됩니다. for, foreach 및 while.

배열의 요소를 반복합니다. for() 루프

배열 목록의 요소를 반복하려면 다음을 수행할 수 있습니다.

1. 먼저 배열 자체를 선언합니다.

3. 사이클을 선언한 후 ~을 위한, 여기서 카운터를 괄호 안에 설정합니다(변수 "i"는 0 값으로 선언됩니다. 이 변수가 전체 배열 요소 수보다 작으면 각 반복마다 "i" 값이 1씩 증가합니다).

4. 그리고 루프 본문에서 배열의 각 요소에 대해 무엇을 할지 이미 규정할 수 있습니다. 예를 들어 간단히 화면에 표시할 수 있습니다.

위의 모든 내용은 다음 코드로 설명됩니다.

"; } ?>

실행 결과, 배열 요소의 값이 각각 새 줄에 표시되는 화면을 볼 수 있습니다.

for 루프와 연관 배열

그러나 연관 배열의 요소를 반복하는 경우 연관 배열의 인덱스가 숫자가 아니라 문자열이라는 단순한 이유 때문에 이 방법은 더 이상 적합하지 않습니다.

연관 배열의 요소를 반복하려면 ~을 위한다음 구성을 사용할 수 있습니다.

" .$Mass[$key] . "
"; } ?>

보시다시피 연관 배열을 선언했습니다.

Reset() - 포인터를 배열의 첫 번째 요소로 설정합니다.

next() - 포인터를 배열의 한 요소 앞으로 이동합니다.

key() - 현재 배열 요소의 키를 반환합니다.

그런 다음 루프 본문에 배열 요소의 인덱스, 화살표 및 배열 요소의 값을 표시합니다. 각 인덱스-값 쌍을 새 줄에 인쇄합니다.

또한 대신 초기화()사용될 수 있다 끝(), 포인터는 배열의 마지막 요소로 설정됩니다. 하지만 이 경우에는 대신 다음()사용 이전()포인터를 앞으로가 아니라 뒤로 이동하려면

따라서 연관 배열의 요소를 역순으로 반복할 수 있습니다.

아시다시피 사이클은 ~을 위한배열 작업에만 사용되는 것이 아닙니다.

그러나 우리가 고려할 다음 사이클은 어레이 작업에만 사용됩니다.

배열의 요소를 반복합니다. foreach() 루프

주기 각각()일반 배열 목록과 연관 목록을 모두 사용할 수 있습니다.

다음은 간단한 배열 목록의 요소를 반복하여 화면에 배열 요소의 모든 값을 표시하는 루프의 예입니다.

"; } ?>

결과적으로 화면에서 이 배열 요소의 모든 값을 볼 수 있습니다.

연관 배열의 경우 이 구성은 정확히 동일하게 유지됩니다(물론 처음에는 목록 배열이 아니라 연관 배열을 선언한다는 점 제외). 그리고 다시 배열 요소의 모든 값을 볼 수 있습니다. 화면.

그러나 요소의 값뿐만 아니라 해당 키도 표시하려면(연관 배열의 경우 인덱스가 문자열 값이라는 것을 기억하세요) 이 루프를 약간 개선해야 합니다.

$value) ( ​​​​echo $key . "=>" . $value . "
"; } ?>

이 경우 화면에 키-값 사이에 화살표가 있는 쌍이 표시됩니다.

배열의 요소를 반복합니다. while() 루프

배열의 모든 요소를 ​​반복하는 데 사용할 수 있는 또 다른 루프는 루프입니다. 하는 동안().

이 경우 이 사이클과 함께 사용할 두 가지 기능이 더 도움이 될 것입니다. 특징은 다음과 같습니다 목록()그리고 각().

배열 목록의 경우 다음과 같이 이 루프를 사용합니다.

"; } ?>

아마도 화면에서 배열 요소의 값을 볼 수 있을 것이라고 이미 짐작했을 것입니다.

여기에 기능 각()배열의 현재 요소를 반환한 다음 포인터를 이동합니다.

연관 배열의 경우 배열 요소의 값만 가져오려는 경우 절차는 동일하게 유지됩니다. 그러나 각 요소의 키도 얻으려면 코드를 약간 보완해야 합니다. 이와 같이:

" . $값 . "
"; } ?>

이것이 키와 값을 모두 얻는 방법입니다.

루프를 사용하지 않고 배열 요소를 반복합니다.

루프를 사용하지 않고도 배열 요소를 반복할 수 있습니다. 이를 위해 우리는 특별한 기능을 사용할 것입니다 array_walk().

이 함수는 다음과 같이 작동합니다. 별도로 생성된 함수를 배열의 모든 요소에 순차적으로 적용할 수 있습니다. 즉, 먼저 독립적인 함수를 만든 다음 다음을 사용합니다. array_walk()배열의 각 요소에 적용합니다. 또한 자체 생성된 함수에서는 배열 요소에 필요한 모든 작업을 규정할 수 있습니다.

배열 요소의 키와 값을 화면에 표시하는 함수를 만든 다음 array_walk()이를 배열의 각 요소에 적용합니다.

" . $값 . "
"; ) $Mass["One"] = 5; $Mass["Two"] = 10; $Mass["Three"] = 15; array_walk($Mass, "f_print"); ?>

결과적으로 화면에 다음이 표시됩니다.

아마도 이것이 배열 요소에 대한 반복에 대해 제가 말씀드리고 싶었던 전부일 것입니다.

이 모든 것이 어떻게 작동하는지 더 잘 이해하려면 각 예를 직접 수행하고 자신의 예를 사용해 연습해 보는 것이 좋습니다.

다음 글에서는 다양한 위치에 배열 요소를 추가하고 제거하는 방법에 대해 설명하겠습니다.

여러분의 의견을 기다리겠습니다. 소셜 네트워크 버튼을 사용하여 친구들과 기사를 공유하고 블로그 업데이트를 구독하여 항상 새로운 출판물을 확인하세요.

Anna Kotelnikova가 당신과 함께했습니다. 행운을 빌며 곧 뵙겠습니다!

(배열 속의 배열, 행렬)
5. 배열 작업을 위한 함수(배열 내 배열, 행렬)

PHP 배열이란 무엇입니까?

나는 포기한 사례로 이 주제를 시작하고 싶습니다. 우리가 몇 가지를 고려하고 있다고 가정해보자 인간. 그는 가지고있다 이름, 성, 주소, 전화번호, 성별, 키, 눈 색깔등등. 이러한 모든 항목에 대한 정보는 개인에 대한 데이터 배열에 기인할 수 있습니다.

배열은 항목에 대한 구체적인 내용 없이 다른 유형일 수 있습니다. 테마만 있을 겁니다. 이렇게 말하자 웹 프로그래밍. 그리고 요소로는 언어가 있습니다. HTML, CSS, 자바스크립트, PHP, MySQL. 단 5가지 요소.

마지막 예를 바탕으로 배열을 가정해 보겠습니다.

웹 프로그래밍
1.HTML
2. CSS
3.자바스크립트
4.PHP
5. MySQL

이제 이 예를 보고 기본 개념을 분석해 보겠습니다.

PHP의 배열동일한 주제를 가지고 순차적으로 배열된 동일한 유형의 데이터 집합으로, 요소의 개수는 고정되어 있습니다.

이 예의 배열은 다음과 같이 호출됩니다. 웹 프로그래밍.

각 요소에는 고유한 순서 위치인 식별자가 있습니다.
색인(배열 키) - 요소를 식별할 수 있는 일련 번호 또는 텍스트 값입니다.

위 예의 인덱스는 다음과 같습니다. 1에서 5까지의 숫자 값. 인덱스 2에 액세스하면 CSS가 표시됩니다.

PHP의 배열 예

이제 위의 예를 러시아어가 아닌 PHP 구문으로 살펴보겠습니다. 배열이 더 짧게 호출된다고 가정해 보겠습니다. 편물. 대괄호 안에 색인이 삽입됩니다.
인덱스에 숫자 값이 포함되는 간단한 배열 예를 살펴보고 마치 변수에 값을 할당하는 것처럼 배열을 만듭니다.

$web="HTML";
$web="CSS";
$web="자바스크립트";
$web="PHP";
$web="MySQL";

$웹; // 이 변수에는 5개의 요소가 있는 배열이 포함되어 있습니다.

// 배열의 요소 중 하나를 표시하려면 배열의 인덱스를 지정하는 것으로 충분합니다.
에코 $web; // PHP 출력

1차원 배열

인덱스 배열

위에서는 웹 프로그래밍을 통해 1차원 배열의 예만 고려했습니다.
이런 식으로 생성되는 경우는 거의 없습니다. 오히려 배열의 구조를 시각적으로 보여줍니다. 더 자주 그들은 다른 방법을 사용합니다.

$web=array("HTML","CSS","자바스크립트","PHP","MySQL");
에코 $web; // "HTML" 출력
에코 $web; // "자바스크립트" 출력
에코 $web; // "PHP"를 출력합니다.

인덱스 값을 설정하려면 다음과 같이 지정해야 합니다. 징후 => 인덱스를 값에 할당하거나 그 반대로 인덱스 값에 할당하는 포인터입니다.

$web=array(1=>"HTML",2=>"CSS",3=>"자바스크립트",4=>"PHP",5=>"MySQL");
에코 $web; // HTML
에코 $web; // CSS
에코 $web; // PHP
이 예에서 개수는 1부터 시작합니다. 따라서 인덱스가 0인 변수는 비어 있습니다.

다음 예에서는 인덱스를 지정하지 않습니다.

$day="월요일"; // 인덱스 0
$day="화요일"; // 1
$day="수요일"; // 2
$day="목요일"; // 삼
$day="금요일"; // 4
처음부터 순차적으로 채워지는 것을 볼 수 있습니다.

연관 배열

배열 요소에 대한 문자 인덱스를 생성해야 하는 경우가 종종 있습니다. 위에서 언급했듯이 이러한 색인은 라틴 문자로 구성되어야 하며 이름은 따옴표로 묶어야 합니다. 인간을 예로 들어보자.

$user["nick"]="논리";
$user["name"]="폴";
$user["age"]="25";
$user["sex"]="남성";

$사용자; // 변수 $user에는 문자 인덱스가 있는 4개의 요소가 있는 배열이 포함되어 있습니다.

// 알파벳 인덱스를 나타내는 배열 요소를 표시합니다.
echo $web["이름"]; // "Paul"을 인쇄합니다.
보시다시피 모든 것이 아주 간단합니다. 인덱스 값만 인용됩니다.

2차원 배열

One-Dimensional Array의 첫 번째 부분을 놓쳤다면 꼭 읽어 보시기 바랍니다.
쉽게 말하면 배열 안의 배열입니다. 즉, 큰 배열의 요소가 다릅니다. 이러한 배열은 RAM을 로드하여 스크립트 작업 속도를 크게 저하시키므로 이러한 데이터 그룹(데이터베이스란 무엇입니까?)을 신속하게 처리하기 위해 데이터베이스가 생성되었지만 이에 대한 자세한 내용은 나중에 설명합니다. 2차원 배열의 예를 살펴보겠습니다.

// 세계 각지의 이름을 담은 배열
$m = array("유럽","아시아","아프리카","미국","호주 및 오세아니아");

// 국가 이름 배열
$s = array("러시아","우크라이나","벨로루시","카자흐스탄");

// 대문자 이름이 담긴 배열
$с = array("모스크바","키예프","민스크","아스타나");

// 2차원 배열 생성 지리학
$geography = array($m, $s, $c);
?>
포함된 배열에는 알 수 있듯이 요소 수가 다를 수 있습니다. 1차원 배열에 관한 부분에서는 배열의 각 요소가 인덱스를 가질 수 있다는 내용이 이어졌습니다. 따라서 포함된 각 배열에 값을 할당해 보겠습니다.

이렇게 하려면 마지막 줄을 확장하고 다음과 같이 작성합니다.

$geography = array("세계의 일부"=>$m, "국가"=>$s, "수도"=>$s);

PHP 배열 함수

각각- 사이클 수가 배열 요소 수와 동일한 배열 작업을 위한 순환 함수입니다.

다음과 같은 형태를 가지고 있습니다. PHP 코드

Foreach($key=>$value 형식의 배열)
명령;
글쎄, 일의 예일 뿐이야

// 유명한 IT로 배열을 생성합니다.
$names["Ritchie"] = "데니스";
$names["Thompson"] = "켄";
$names["Gates"] = "빌";
$names["Jobs"] = "스티브";

Foreach($names as $key => $value) (
echo "$value $key";
}
?>
스크립트가 표시됩니다

데니스 리치
켄 톰슨
빌 게이츠
스티브 잡스
세다- 배열의 요소 수를 반환하는 함수입니다.

에코 개수($names); // IT 예에서는 값 4를 반환합니다.
종류배열의 요소를 정렬하는 함수입니다. 숫자 인덱스 값에 유용합니다.
분류배열의 요소를 역순으로 정렬하는 함수입니다.

정렬($이름); //순서대로 정렬됩니다. Index에 숫자가 있으면 편리합니다.
배열($이름); // 역순으로 정렬합니다. 즉, 인덱스에 따라 요소의 순서는 3, 2, 1, 0입니다.
설정되지 않음- 배열 요소를 제거하는 함수입니다.

설정 해제($배열); // 인덱스 2의 배열 요소 제거
설정 해제($배열); // 전체 배열 삭제
배열_검색- 배열에서 검색 기능. 두 가지 인수가 있습니다. 간단히 말해서 array_search("what", where)

$동물="개";
$동물="고양이";
$animals="새";
echo array_search("cat",$animals); // 요소 인덱스(숫자 2)를 표시합니다.
혼합- 배열 값의 키를 섞는 함수입니다.

Shuffle($animals); // 요소를 무작위 순서로 정렬
관심을 가져주셔서 감사합니다!

$arr [ 1 ] = "PHP" ;
$arr [ 2 ] = "MySQL" ;
$arr [ 3 ] = "아파치" ;
?>

배열 요소는 코드뿐만 아니라 일반 변수처럼 큰따옴표 안에 사용할 수 있습니다.

echo "$arr $arr $arr" ;
?>

$arr [ "첫 번째" ] = "PHP" ;
$arr [ "두 번째" ] = "MySQL" ;
$arr [ "세 번째" ] = "아파치" ;
?>

이 경우 배열이 호출됩니다. 연관, 해당 인덱스는 다음과 같이 호출됩니다. 열쇠. 문자열의 배열 요소를 표시하려면 따옴표(이중 또는 단일 모두 아님)를 사용해야 합니다.

에코 "$arr $arr $arr";
?>

연관 배열에는 인덱스가 없으므로 이를 우회하기 위해 특별한 유형의 루프가 도입되었습니다. 각각:

foreach($arr $key => $value )
{
echo "$key = $value
" ;
}
?>

루프의 결과로 세 줄이 표시됩니다

첫 번째 = PHP
두 번째 = MySQL
세 번째 = 아파치

각 루프의 배열 키에 대한 액세스를 허용하는 "$key =>" 구성은 선택 사항이며 생략할 수 있습니다.

foreach($arr를 $value로)
{
에코 "$값
" ;
}
?>

다음과 같은 여러 함수를 사용하여 배열을 반환할 수도 있습니다. 파일(), 파일을 읽고 해당 내용을 배열로 반환합니다. 배열의 각 요소는 하나의 행에 해당합니다.

$arr = file("text.txt");
for($i = 0 ; $i< count ($arr ); $i ++)
{
에코 $arr[$i]. "
" ;
}
?>

또 다른 유용한 기능은 다음과 같습니다. 터지다()를 사용하면 문자열을 여러 조각으로 분할할 수 있으며 각 조각은 배열의 별도 요소에 배치됩니다.

$str = "345|[이메일 보호됨]|http://www.softtime.ru|로그인|비밀번호";
$arr = 폭발("|" , $str );
for($i = 0 ; $i< count ($arr ); $i ++)
{
에코 $arr[$i]. "
" ;
}
?>

스크립트의 출력은 다음과 같습니다.

345
[이메일 보호됨]
http://www.softtime.ru
로그인
비밀번호

역함수인 implode()도 있습니다. 이 함수는 주어진 구분 기호를 사용하여 배열의 요소를 문자열로 결합합니다.

$arr = "345" ;
$arr = " [이메일 보호됨]" ;
$arr = "http://www.softtime.ru" ;
$arr = "로그인" ;
$arr = "비밀번호" ;
$str = 파열("##" , $arr );
에코 $str ; //345##[이메일 보호됨]##http://www.softtime.ru##login##password
?>

논평

일반적으로 문자열을 처리하는 함수는 매우 많기 때문에 모든 함수를 고려하는 것은 이 문서의 범위를 벗어납니다.

함수를 사용하여 배열의 개별 요소를 제거할 수 있습니다. 설정되지 않음(), 함수를 사용하여 배열의 존재를 확인할 수 있습니다. isset(). 10개의 요소로 구성된 배열을 정의하고 짝수 요소를 모두 삭제해 보겠습니다.

unset($arr [ 0 ], $arr [ 2 ], $arr [ 4 ], $arr [ 6 ], $arr [ 8 ]);
// 배열 요소가 존재하는지 확인
for($i = 0 ; $i< 10 ; $i ++)
{
if(isset($arr [ $i ])) 에코 "$arr[$i] 요소가 정의되었습니다.
"
;
에코 "$arr[$i] 요소가 정의되지 않았습니다.
"
;
}
?>

스크립트의 결과는 다음과 같습니다.

$arr 요소가 정의되지 않았습니다.
$arr 요소가 정의되었습니다.
$arr 요소가 정의되지 않았습니다.
$arr 요소가 정의되었습니다.
$arr 요소가 정의되지 않았습니다.
$arr 요소가 정의되었습니다.
$arr 요소가 정의되지 않았습니다.
$arr 요소가 정의되었습니다.
$arr 요소가 정의되지 않았습니다.
$arr 요소가 정의되었습니다.

기능 사용 설정되지 않음()전체 어레이를 한 번에 파괴할 수 있습니다.

$arr = 배열(9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 , 0 );
설정되지 않음($arr);
if(isset($arr )) 에코 "배열이 정의되었습니다";
에코 "배열이 정의되지 않았습니다";
?>

이전에는 루프를 사용하여 배열을 덤프했지만 PHP는 배열을 덤프하는 특수 기능을 제공합니다. print_r(). 이 기능은 콘솔 스트림으로의 출력에 초점이 맞춰져 있으므로 브라우저 창에 결과를 출력할 때 태그로 프레임을 지정하는 것이 좋습니다.

그리고
:

$arr = "345";
$arr = " [이메일 보호됨]";
$arr = "http://www.softtime.ru";
$arr = "로그인";
$arr = "비밀번호";
에코 "

";
print_r($arr);
에코 "
";
?>

스크립트의 출력은 다음과 같습니다.

정렬
=> 345
=> [이메일 보호됨]
=> http://www.softtime.ru
=> 로그인
=> 비밀번호
)

다차원 배열

배열 요소는 스칼라 값일 뿐만 아니라 배열 자체일 수도 있습니다. 이 경우 소위 다차원배열.

다음과 같은 테이블을 만들어 보겠습니다.

이렇게 하려면 2차원 배열을 만듭니다.

$arr = array(array('Vasya' , '자물쇠 제조공' , 2500 ),
array('미샤' , '빌더' , 3000 ),
array('앤드레이' , '드라이버' , 2700 ));
?>

이제 다음 코드를 사용하여 테이블을 표시할 수 있습니다.

($i = 0 ; $i< 3 ; $i ++)
{
($j = 0 ; $j< 3 ; $j ++)
{
에코 " | " . $arr [ $i ][ $j ];
}
에코 "
" ;
}
?>

결과:

| 바샤 | 자물쇠 제조공 | 2500
| 미샤 | 건축업자 | 3000
| 앤드류 | 드라이버 | 2700

3D, 4D 등을 사용할 수도 있습니다. 배열.

배열 작업(레시피 수집)

1) 배열의 요소 수 결정 세다():

$name 배열을 만들어 보겠습니다.

?>

배열의 요소 수를 확인하려면 다음을 수행할 수 있습니다.

에코 '배열의 요소 수- ' . 개수($이름);
?>

결과:

배열의 요소 수 - 8

2) 배열의 합집합

a) 두 개의 연관 배열 $a 및 $b를 만듭니다.

$a = array("a" => "aa" , "b" => "bb" );
$b = array(“c” => ”cc” , “d” => “dd” );
?>

$a 배열과 $b 배열의 요소를 모두 포함하는 배열 $c를 생성해야 한다고 가정합니다.

$a = array("a" => "aa" , "x" => "xx" );
$b = array("c" => "cc" , "d" => "dd" );
$c = $a + $b ;
에코 "

"
; 
print_r($c);
에코 "
" ;
?>

결과:

정렬
[a] => 아아
[x] => xx
[c] => 참조
[d] => dd
)

b) 두 개의 숫자 배열 $a 및 $b를 만듭니다.

$a = 배열(10, 20);
$b = 배열(100, 200, 300, 400, 500);
?>

더 이상 $c = $a + $b; 구성을 사용하여 결합할 수 없습니다. 이들을 결합하려면 다음 기능을 사용해야 합니다. 배열_병합():

$c = array_merge($a , $b );
?>

3) 배열 정렬

$name 배열을 사용해 보겠습니다.

$name = array("Boss" , "Lentin" , "NAV" , "Endless" , "Dragons" , "SiLeNT" , "Doctor" , "Lynx" );
?>

배열을 알파벳순으로 정렬하고 싶다면 다음 코드를 사용할 수 있습니다.

sort($이름);
에코 "

"
; 
print_r($이름);
에코 "
" ;
?>

결과:

정렬
=> 보스
=> 의사
=> 드래곤
=> 끝이 없다
=> 렌틴
=> 스라소니
=> 순항
=> 침묵
)

$name 배열에서 가장 짧은 요소(문자 수가 가장 적은 요소)를 선택해야 합니다. 이 경우 다음 코드를 사용할 수 있습니다.

$name = array("Boss" , "Lentin" , "NAV" , "Endless" , "Dragons" , "SiLeNT" , "Doctor" , "Lynx" );
$min = strlen($이름 [ 0 ]);
$이름 = $이름 [ 0 ];
($i = 1 ; $i< count ($name ); $i ++)
{
$len = strlen($name [ $i ]);
if ($len< $min )
{
$nam = $이름 [ $i ];
$min = strlen($nam );
}
}
에코 "최소 길이 -". $남;
?>

4) 배열 내부로 이동

$num 배열을 만들어 보겠습니다.

?>

배열 요소를 역순으로 표시해야 합니다. 이 경우 다음 코드를 사용할 수 있습니다.

$end = end($num );
동안 ($end )
{
에코 $end . "-";
$end = prev($num );
}
?>

결과:

10 - 9 - 8 - 7 - 6 - 5 - 4 - 3 - 2 – 1

위 코드는 다음과 같이 수정될 수 있습니다.

$num = 범위 (1 , 10 );
print_r(array_reverse($num));
?>

기능 범위(1,10)임의의 요소로 배열(1,2,3,4,5,6,7,8,9,10)을 생성합니다. 기능 array_reverse()배열을 가져와 요소를 역순으로 배치합니다(10,9,8,7,6,5,4,3,2,1).

기능 다음(), 각()포인터를 한 요소 앞으로 이동합니다. 기능 초기화()배열의 1개 요소에 대한 포인터를 반환합니다. $num 배열을 사용해 보겠습니다.

$num = 배열(1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 );
?>

모든 요소를 ​​순서대로 표시하고 배열의 마지막 요소에서 배열의 첫 번째 요소에 대한 포인터를 반환해야 합니다. 이 작업은 다음 코드로 수행할 수 있습니다.

좋은 하루 되세요, 하브라지텔리!

내 기사에서는 PHP에서 다차원 연관 배열을 처리하는 방법에 대해 이야기하고 싶습니다. 제 생각에는 다차원 배열에서 필요한 정보를 얻는 것이 항상 편리한 것은 아닙니다. 배열이 2차원인 경우 문제는 다음과 같습니다.

array("key1" => "값1", "key2" => "값2")); ?>

그러면 물론 우리가 관심 있는 값을 쉽게 얻을 수 있습니다.

echo $array["dimension1"]["key1"]; // 값1

하지만 n차원 배열이 있다면 어떨까요? 예를 들어 5차원은 다음과 같습니다.

$array = array("dimension1" => array("dimension2" => array("dimension3" => array("dimension4" => array("dimension5" => array("value1" => "안녕! 나\ "m value1", "value2" => "안녕하세요! 저는 \"m value2"))))));

예를 들어 "value1"과 같이 키로 값을 얻으려면 다음 코드를 작성해야 합니다.

Echo $array["dimension1"]["dimension2"]["dimension3"]["dimension4"]["dimension5"]["value1"]; // 여기요! 나는 "가치 1

비록 그것이 정확하더라도 나는 그러한 기록을 아름답다고 부르지 않을 것입니다. 나는 이 항목을 다음과 같이 만들어서 좀 더 멋지게 만들 것을 제안합니다.

Echo easyA($array)->차원1->차원2->차원3->차원4->차원5->값1; // 여기요! 나는 "가치 1

동의하세요. 실제로 표준 레코드보다 훨씬 더 예뻐 보입니다.

따라서 먼저 배열을 처리할 클래스를 만들어야 합니다. easyArray라고 부르고 싱글톤으로 만들어 보겠습니다.

암호

class easyArray( private static $instance; // 클래스의 상태. private $Array; // 클래스에 전달된 배열. private function __construct()( // 생성자를 적습니다. ) private function __clone() ( // clone 메소드를 적어둡니다. ) public static function getInstance()( if(null === self::$instance)( self::$instance = new self(); ) return self::$instance; )

클래스가 외톨이가 된 후에는 결과 배열을 개인 변수에 쓰는 매우 중요한 메서드를 추가할 것입니다.

암호

public function loadArray($newArray)( if(is_array($newArray))( $this->Array = $newArray; return $this; )else( $error = "죄송합니다. 배열을 전달하지 않았습니다."; throw 새로운 예외( $error); ) )
코드에서 메소드의 입력으로 전달된 내용도 확인하는 것을 볼 수 있습니다. 전달된 배열이 아닌 경우 오류와 함께 예외가 발생합니다. 죄송합니다. 배열을 전달하지 않았습니다..". 검사가 성공하면 결과 배열을 개인 변수에 쓰고 현재 객체를 반환합니다.

이제 우리 클래스의 "__get()" 매직 메서드를 재정의하겠습니다. 이는 원하는 결과를 얻기 위해 필요합니다. 그래서:

암호

공용 함수 __get($index)( if(isset($this->Array[$index]))( if(is_array($this->Array[$index]))( $this->loadArray($this-> Array[$index]); return $this; )else( return $this->Array[$index]; ) )else( $error = "배열에 키(".$index.")가 없습니다."; 새로운 예외 발생 ($오류); ) )

우선, 요청한 키가 배열에 있는지 확인하고, 없는 경우 오류와 함께 예외를 발생시킵니다. "배열에 키(".$index.")가 없습니다."". 다음으로 요청한 키가 배열인지 확인합니다. 배열에 해당 키에 대한 값이 있으면 간단히 이 값을 반환합니다. 배열이면 " 로드Array($newArray)" 그리고 현재 객체($this)를 반환합니다.

그리고 클래스를 마무리하면서 클래스가 작동하는 현재 배열을 반환하는 메서드를 추가해 보겠습니다.

암호

공용 함수 arrayReturn()( return $this->Array; )

이제 클래스가 준비되었습니다. 값을 얻으려면 이제 다음 코드를 사용해야 합니다.

Echo easyArray::getInstance()->loadArray($array)->dimension1->dimension2->dimension3->dimension4->dimension5->value1; // 여기요! 나는 "가치 1

예전보다 훨씬 더 길어졌습니다. 하지만 이 문제는 해결 가능하며 이를 위해서는 간단한 함수가 필요합니다.

함수 easyA($newArray)( return easyArray::getInstance()->loadArray($newArray); )

자, 이제 우리가 결국 무엇을 얻었는지 확인해 봅시다:

암호

array("dimension2" => array("dimension3" => array("dimension4" => array("dimension5" => array("value1" => "안녕하세요! 저는\"m value1", "value2" => "안녕하세요! 저는\"mvalue2")))))); require_once("easyArray.php"); require_once("easyArrayFunction.php"); echo easyA($array)->차원1->차원2->차원3->차원4->차원5->값1; // 여기요! 나는\"m 값1 echo easyA($array)->dimension1->dimension2->dimension3->dimension4->dimension5->value2; // 안녕하세요! 나는\"m value2 ?>
모든 것이 의도한 대로 작동합니다.

또한 다음과 같은 구성 파일을 이 클래스에 전달할 수 있습니다.

암호

array("dimension2" => array("dimension3" => array("dimension4" => array("dimension5" => array("value1" => "안녕하세요! 저는\"array.php 파일의 값 1입니다.", "value2" => "안녕하세요! 저는 array.php 파일에서 value2를 가져왔습니다.")))))); ?>


이렇게 하려면 다음 구성을 사용해야 합니다.

암호

echo easyA(require_once("array.php"))->dimension1->dimension2->dimension3->dimension4->dimension5->value1; // 여기요! 나는 "array.php 파일의 value1"입니다.

아마도 제가 바퀴를 발명했을 수도 있지만, 이 글은 초보자와 다른 프로그래머 모두에게 흥미로울 것이라고 생각합니다.

관심을 가져주셔서 감사합니다.