백엔드 개발 PHP 문제 PHP 배열 키 값이 반복될 수 있나요?

PHP 배열 키 값이 반복될 수 있나요?

Apr 19, 2023 am 09:18 AM

PHP의 배열은 일련의 데이터를 함께 저장하고 숫자나 문자열과 같은 다양한 유형의 키 값을 사용하여 이 데이터에 액세스할 수 있는 매우 일반적인 데이터 구조입니다. PHP 배열로 작업할 때 다음과 같은 질문이 발생할 수 있습니다. 동일한 키를 사용하여 여러 값을 저장할 수 있습니까? 이 기사에서는 이 질문에 답하고 몇 가지 관련 개념과 기술을 소개합니다.

우선, PHP의 배열은 키 값을 모든 유형의 값에 매핑할 수 있는 연관 배열이라는 점을 분명히 해야 합니다. 이는 각 키가 하나의 값에만 해당할 수 있음을 의미합니다. 동일한 키에 여러 값을 저장하려고 하면 새 값이 이전 값을 덮어쓰게 됩니다. 예:

$fruits = array(
  'apple' => 'red',
  'banana' => 'yellow',
  'apple' => 'green'
);

echo $fruits['apple']; // 输出 green
로그인 후 복사

위의 예에서 $fruits 배열에 'apple' => 'green'을 추가하면 이전 'apple' => 'red'를 덮어씁니다. 따라서 $fruits['apple'] 을 인쇄하면 'red'가 아닌 'green'이 반환됩니다.

이것은 PHP에서 동일한 문자열 키를 사용하여 새 요소를 추가하면 새 요소가 이전 요소를 대체하기 때문입니다. 이는 PHP가 배열의 키를 해시 테이블의 키로 취급하고, 새 값의 해시 코드가 이전 값의 해시 코드와 동일하면 새 값이 이전 값을 대체하기 때문입니다. 이는 또한 정수 키를 사용하여 요소를 반복적으로 추가하려고 하면 이전 값을 바꾸는 대신 새 요소가 배열 끝에 추가된다는 의미이기도 합니다.

위 예제에 사용된 문자열 키 외에도 PHP는 정수, 부동 소수점, 부울, 객체 등을 포함한 다른 유형의 키도 지원합니다. PHP는 모든 키를 문자열로 변환하므로, 다른 유형의 키를 가진 요소를 추가하려고 하면 몇 가지 문제가 발생할 수 있습니다. 예:

$fruits = array(
  'apple' => 'red',
  0 => 'hello',
  1.5 => 'world',
  true => 'yes',
  new stdClass() => 'object'
);

print_r($fruits);
로그인 후 복사

위의 예에서는 정수, 부동 소수점, 부울 및 객체와 같은 다양한 유형의 키를 사용하여 요소를 추가하려고 합니다. 그러나 위의 코드를 실행하면 모든 요소가 배열에 추가되지만 키는 문자열로 변환되는 것을 볼 수 있습니다. 예를 들어, 정수 0은 문자열 '0'으로 변환되고, float 1.5는 문자열 '1.5'로 변환되며, 부울 true는 문자열 '1'로 변환되고, 객체는 다음과 같이 변환됩니다. 문자열 '[객체]stdClass'.

어떤 경우에는 중복 키를 사용하여 여러 값을 저장해야 할 수도 있습니다. 이 기능을 달성하기 위해 PHP의 또 다른 데이터 구조인 다차원 배열(다차원 배열)을 사용할 수 있습니다. 다차원 배열은 여러 배열을 중첩할 수 있으며 각 배열은 동일한 유형의 키를 가질 수 있습니다.

예를 들어 다음 예에서는 다차원 배열을 사용하여 여러 색상을 저장하는 방법을 보여줍니다.

$fruits = array(
  'apple' => array('red', 'green'),
  'banana' => array('yellow')
);

print_r($fruits);
로그인 후 복사

위 예에서는 과일 색상 저장을 사용하여 각 요소가 배열인 두 요소가 있는 $fruits 배열을 만들었습니다. . 이제 다음과 같은 키를 사용하여 특정 색상에 액세스할 수 있습니다.

echo $fruits['apple'][0]; // 输出 red
echo $fruits['apple'][1]; // 输出 green
echo $fruits['banana'][0]; // 输出 yellow
로그인 후 복사

다차원 배열을 사용하는 동안 중첩 배열을 사용하여 여러 값을 저장하면 코드가 더 복잡해지고 이로 인해 코드가 더 어려워질 수 있다는 점을 알아야 합니다. 이해하고 유지하세요. 따라서 다른 데이터 구조를 사용하여 여러 값을 저장할 수 있다면 가능하면 중복 키를 피해야 합니다.

요약하자면, PHP의 배열은 연관 배열이므로 동일한 키에 여러 값을 저장할 수 없습니다. 여러 값을 저장해야 하는 경우 다차원 배열이나 기타 데이터 구조를 사용하는 것이 좋습니다. 동시에, 다른 유형의 키를 사용하는 경우 PHP가 자동으로 키를 문자열로 변환하므로 불필요한 오류와 문제가 발생할 수 있다는 점에 유의해야 합니다.

위 내용은 PHP 배열 키 값이 반복될 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)