2차원 배열을 선언하려면 어떻게 해야 합니까?
2D 어레이를 만드는 가장 쉬운 방법은 무엇입니까?나는 다음과 같은 일을 할 수 있기를 바라고 있었다.
declare int d[0..m, 0..n]
어레이의 인덱스를 지정하여 연관 배열 또는 어레이와 같은 "해시 테이블"을 생성할 수도 있습니다.
$array = array(
0 => array(
'name' => 'John Doe',
'email' => 'john@example.com'
),
1 => array(
'name' => 'Jane Doe',
'email' => 'jane@example.com'
),
);
즉,
$array = array();
$array[0] = array();
$array[0]['name'] = 'John Doe';
$array[0]['email'] = 'john@example.com';
$array[1] = array();
$array[1]['name'] = 'Jane Doe';
$array[1]['email'] = 'jane@example.com';
다음은 동일하며 2차원 배열이 됩니다.
$array = array(
array(0, 1, 2),
array(3, 4, 5),
);
또는
$array = array();
$array[] = array(0, 1, 2);
$array[] = array(3, 4, 5);
그냥 신고해요?그럴 필요 없어요변수가 존재하는지 확인합니다.
$d = array();
어레이의 사이즈는 동적으로 변경되어 비존재 요소에 기입하려고 하면 어레이가 작성됩니다(필요에 따라 어레이 전체가 작성됩니다.
$d[1][2] = 3;
이는 사전 선언이 없는 임의의 수의 차원에 대해 유효합니다.
첫째, PHP는 다차원 배열이 아니라 배열이 있습니다.
둘째, 이 기능을 수행할 함수를 작성할 수 있습니다.
function declare($m, $n, $value = 0) {
return array_fill(0, $m, array_fill(0, $n, $value));
}
심플한 「사용하는 대로 채우기」솔루션의 경우:
$foo = array(array());
이렇게 하면 $foo[n][n]를 저장할 수 있는 유연한 의사 2차원 어레이를 얻을 수 있습니다. 여기서 n < = ( 。 (물론 메모리 크기의 일반적인 제약에 의해 제한되지만, 제가 원하는 아이디어를 얻을 수 있습니다.)이론상으로는 이 기능을 확장하여 필요한 수의 서브 어레이를 생성할 수 있습니다.
또는 대규모 어레이의 경우 모두 동일한 가치를 가집니다.
$m_by_n_array = array_fill(0, $n, array_fill(0, $m, $value);
작성하다$m
타고$n
모든 것을 세팅한 배열$value
.
아틀리의 답변은 제가 이것을 이해하는 데 큰 도움이 되었습니다.여기 2차원 배열에서 반복하는 방법의 예가 있습니다.다음 예제에서는 어레이의 기존 이름 값을 찾는 방법과 검색된 모든 필드를 살펴보는 방법을 보여 줍니다.도움이 됐으면 좋겠어요.
$array = array(
0 => array(
'name' => 'John Doe',
'email' => 'john@example.com'
),
1 => array(
'name' => 'Jane Doe',
'email' => 'jane@example.com'
),
);
foreach ( $array as $groupid => $fields) {
echo "hi element ". $groupid . "\n";
echo ". name is ". $fields['name'] . "\n";
echo ". email is ". $fields['email'] . "\n";
$i = 0;
foreach ($fields as $field) {
echo ". field $i is ".$field . "\n";
$i++;
}
}
출력:
hi element 0
. name is John Doe
. email is john@example.com
. field 0 is John Doe
. field 1 is john@example.com
hi element 1
. name is Jane Doe
. email is jane@example.com
. field 0 is Jane Doe
. field 1 is jane@example.com
이를 위한 내장 php 함수는 없는 것으로 알고 있는 한 루프 또는 @Amber가 응답한 array_fill inidcated와 같은 것을 반복적으로 호출하는 커스텀 메서드를 통해 실행해야 합니다.
빈 어레이를 초기화한 어레이를 작성한 것을 의미한다고 생각합니다.예를 들어 다음과 같은 3개의 어레이 배열의 최종 결과를 얻을 수 있습니다.
$final_array = array(array(), array(), array());
이것은 수작업으로 간단하게 코드화할 수 있지만, 3개의 어레이로 구성된 어레이와 같은 임의의 크기의 어레이에서는 사용하기 전에 초기화가 복잡해집니다.
$final_array = array(array(array(), array(), array()), array(array(), array(), array()), array(array(), array(), array()));
...등...
짜증이 나요.에러를 체크하거나 발생시키지 않고, 어레이의 초기화된 어레이를 간단하게 선언하는 것이 좋습니다.
또한 어레이를 sparse로 할 것인지 아닌지에 대한 논의는 상황에 따라 달라집니다.
예를 들어 $a[6][9]가 입력되지 않은 경우 $a[6][9]가 " 또는 0"으로 입력되는 것과 같습니다.
$r = array("arr1","arr2");
단일 어레이 요소를 에코하려면 다음과 같이 기록해야 합니다.
echo $r[0];
echo $r[1];
은 다음과 같습니다.arr1 arr2
그리고 난 이런 방식이 좋아
$cars = array
(
array("Volvo",22),
array("BMW",15),
array("Saab",5),
array("Land Rover",17)
);
어레이를 다른 어레이에 선언해야 합니다.
$arr = array(array(content), array(content));
예:
$arr = array(array(1,2,3), array(4,5,6));
첫 을 사용합니다$arr[0][0]
이는 어레이의 첫 번째 어레이의 첫 번째 항목과 같습니다. $arr[1][0]
는 어레이의 두 번째 어레이에서 첫 번째 항목을 반환합니다.
하나의 라이너를 사용하여 간단한 값을 얻기 위해 다차원 배열을 빠르게 작성하려면 다음과 같이 이 배열 라이브러리를 사용하는 것이 좋습니다.
$array = Arr::setNestedElement([], '1.2.3', 'value');
그 결과
[
1 => [
2 => [
3 => 'value'
]
]
]
시도할 수 있지만 두 번째 차원 값은 인덱스와 동일합니다.
$array = array_fill_keys(range(0,5), range(0,5));
빈 어레이는 조금 더 복잡합니다.
$array = array_fill_keys(range(0, 5), array_fill_keys(range(0, 5), null));
// You can define your 2D array like this ...
$QaA = [
['Question_1', 'Answer_1'],
['Question_2', 'Answer_2'] ];
// ... and return some very value like this ...
echo $QaA[1][1]; // "Answer_2"
// And you can browse through all this 2D array:
foreach ( $QaA as $nr1 => $content ) {
echo "\n";
foreach ($content as $nr2 => $answer) {
echo " $nr1, $nr2: $answer"; } }
/* Result:
0, 0: Question_1 0, 1: Answer_1
1, 0: Question_2 1, 1: Answer_2 */
// Thus you can see all the array:
print_r($QaA); /* Result:
Array (
[0] => Array (
[0] => Question_1
[1] => Answer_1 )
[1] => Array (
[0] => Question_2
[1] => Answer_2 ) ) */
언급URL : https://stackoverflow.com/questions/1811100/how-do-i-declare-a-two-dimensional-array
'programing' 카테고리의 다른 글
날짜를 일반 형식으로 인쇄하려면 어떻게 해야 합니까? (0) | 2022.10.29 |
---|---|
PHP의 유형 조정 및 (엄격한) 크기/낮은 비교 (0) | 2022.10.29 |
ASC가 아닌 경우문자열에서 II 문자를 삭제하시겠습니까? (0) | 2022.10.29 |
Javascript/jQuery에서 두 숫자 사이에 모든 정수 배열 생성 (0) | 2022.10.29 |
HTML 텍스트 오버플로 줄임표 검출 (0) | 2022.10.29 |