<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 이 기사는 기사 내용 만 예를 들어 출력합니다,실제 논리가 관련이 없습니다</span></span><span>
</span><span><span class="hljs-comment">// --------------------------- 텍스트 ---------------------------</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
<h1>사용하는 방법 array_keys 배열 키의 중복 오류를 피하십시오?PHP 초보자에게 자주 묻는 질문</h1>
<p>존재하다 PHP 가운데,배열은 매우 유연한 데이터 구조입니다,키와 값을 동시에 저장할 수 있습니다。하지만,초보자가 종종 겪는 문제는입니다:当你존재하다数组가운데不小心定义了重复的键,나중에 정의 된 값은 이전 값을 덮어 씁니다,데이터 손실 또는 논리 오류를 유발합니다。</p>
<h2>배열 키의 복제의 일반적인 상황</h2>
<p>간단한 예를 들어보세요:</p>
<pre><code </span><span><span class="hljs-class"><span class="hljs-keyword">class</span></span></span><span>="</span><span><span class="hljs-title">language</span></span><span>-</span><span><span class="hljs-title">php</span></span><span>">
$</span><span><span class="hljs-title">data</span></span><span> = [
"</span><span><span class="hljs-title">id</span></span><span>" => 1,
"</span><span><span class="hljs-title">name</span></span><span>" => "</span><span><span class="hljs-title">Alice</span></span><span>",
"</span><span><span class="hljs-title">id</span></span><span>" => 2
];
</span><span><span class="hljs-title">print_r</span></span><span>($</span><span><span class="hljs-title">data</span></span><span>);
</</span><span><span class="hljs-title">code</span></span><span>></</span><span><span class="hljs-title">pre</span></span><span>>
<</span><span><span class="hljs-title">p</span></span><span>>실행 후,数组가운데只会保留最后一次的 <</span><span><span class="hljs-title">code</span></span><span>>"</span><span><span class="hljs-title">id</span></span><span>" => 2</</span><span><span class="hljs-title">code</span></span><span>>,처음으로 정의했습니다 <</span><span><span class="hljs-title">code</span></span><span>>"</span><span><span class="hljs-title">id</span></span><span>" => 1</</span><span><span class="hljs-title">code</span></span><span>> 다루어졌습니다。</</span><span><span class="hljs-title">p</span></span><span>>
<</span><span><span class="hljs-title">h2</span></span><span>>사용 방법 </span><span><span class="hljs-title">array_keys</span></span><span> 반복 키를 확인하십시오?</</span><span><span class="hljs-title">h2</span></span><span>>
<</span><span><span class="hljs-title">p</span></span><span>><</span><span><span class="hljs-title">code</span></span><span>></span><span><span class="hljs-title">array_keys</span></span><span>()</</span><span><span class="hljs-title">code</span></span><span>> 函数可以返回数组가운데所有键组成的新数组,중복 키가 있는지 여부를 감지 할 수 있습니다.。</</span><span><span class="hljs-title">p</span></span><span>>
<</span><span><span class="hljs-title">pre</span></span><span>><</span><span><span class="hljs-title">code</span></span><span> </span><span><span class="hljs-title">class</span></span><span>="</span><span><span class="hljs-title">language</span></span><span>-</span><span><span class="hljs-title">php</span></span><span>">
$</span><span><span class="hljs-title">data</span></span><span> = [
"</span><span><span class="hljs-title">id</span></span><span>" => 1,
"</span><span><span class="hljs-title">name</span></span><span>" => "</span><span><span class="hljs-title">Alice</span></span><span>",
"</span><span><span class="hljs-title">id</span></span><span>" => 2
];
$</span><span><span class="hljs-title">keys</span></span><span> = </span><span><span class="hljs-title">array_keys</span></span><span>($</span><span><span class="hljs-title">data</span></span><span>);
// 통계 키 발생 수
$</span><span><span class="hljs-title">keyCounts</span></span><span> = </span><span><span class="hljs-title">array_count_values</span></span><span>($</span><span><span class="hljs-title">keys</span></span><span>);
// 중복 키를 찾으십시오
$</span><span><span class="hljs-title">duplicates</span></span><span> = </span><span><span class="hljs-title">array_filter</span></span><span>($</span><span><span class="hljs-title">keyCounts</span></span><span>, </span><span><span class="hljs-title">function</span></span><span>($</span><span><span class="hljs-title">count</span></span><span>) {
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$count</span></span><span> > </span><span><span class="hljs-number">1</span></span><span>;
});
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-keyword">empty</span></span><span>(</span><span><span class="hljs-variable">$duplicates</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"중복 키를 발견하십시오: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">implode</span></span><span>(</span><span><span class="hljs-string">", "</span></span><span>, </span><span><span class="hljs-title function_ invoke__">array_keys</span></span><span>(</span><span><span class="hljs-variable">$duplicates</span></span><span>));
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"중복 키가 없습니다"</span></span><span>;
}
이런 식으로, 우리는 후속 데이터 덮기를 피하기 위해 프로그램 로직에서 중복 키 문제를 빠르게 발견 할 수 있습니다.
PHP 초보자는 배열 키의 오버레이를 무시하기 쉽지만 array_keys 와 같은 함수를 사용하면 인코딩 프로세스 중에 오류를 미리 감지하고 피할 수 있습니다. 좋은 습관은 코드를 작성할 때 배열 구조를 명확하게 유지하고 필요할 때 확인하는 것입니다. 이는 디버깅 비용을 크게 줄일 수 있습니다.
관련 태그:
array_keys