현재 위치: > 최신 기사 목록> [PHP에서 array_values ​​및 array_keys 함수를 사용하는 방법은 무엇입니까? 자세한 인스턴스 분석

[PHP에서 array_values ​​및 array_keys 함수를 사용하는 방법은 무엇입니까? 자세한 인스턴스 분석

gitbox 2025-08-25

1. 기본 소개

  • : 배열에서 모든 키 이름을 반환합니다. 검색 값이 지정되면 값이 포함 된 모든 키를 필터링 할 수 있습니다.

     <span><span><span class="hljs-title function_ invoke__">array_keys</span></span><span>(</span><span><span class="hljs-variable">$array</span></span><span>, </span><span><span class="hljs-variable">$search_value</span></span><span>, </span><span><span class="hljs-variable">$strict</span></span><span>);
    </span></span>
  • Array_Values ​​함수 : 배열의 모든 값을 반환하고 키 이름을 무시하고 Reindex를 무시합니다.

     <span><span><span class="hljs-title function_ invoke__">array_values</span></span><span>(</span><span><span class="hljs-variable">$array</span></span><span>);
    </span></span>

2. 간단한 예

우리가 여러 학생들의 성적을 저장하는 연관 배열이 있다고 가정 해 봅시다. 여기서 배열의 열쇠는 학생의 이름이고 가치는 성적이라고 가정합니다. 우리는 성적이 특정 점수 인 모든 학생들을 알고 싶습니다.

 <span><span><span class="hljs-variable">$students</span></span><span> = [
    </span><span><span class="hljs-string">'John'</span></span><span> =&gt; </span><span><span class="hljs-number">85</span></span><span>,
    </span><span><span class="hljs-string">'Alice'</span></span><span> =&gt; </span><span><span class="hljs-number">90</span></span><span>,
    </span><span><span class="hljs-string">'Bob'</span></span><span> =&gt; </span><span><span class="hljs-number">75</span></span><span>,
    </span><span><span class="hljs-string">'Charlie'</span></span><span> =&gt; </span><span><span class="hljs-number">85</span></span><span>,
    </span><span><span class="hljs-string">'David'</span></span><span> =&gt; </span><span><span class="hljs-number">95</span></span><span>
];

</span><span><span class="hljs-variable">$search_score</span></span><span> = </span><span><span class="hljs-number">85</span></span><span>;

</span><span><span class="hljs-comment">// 모든 결과를 얻으십시오85재학생</span></span><span>
</span><span><span class="hljs-variable">$keys</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_keys</span></span><span>(</span><span><span class="hljs-variable">$students</span></span><span>, </span><span><span class="hljs-variable">$search_score</span></span><span>);
</span><span><span class="hljs-variable">$students_with_score</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_values</span></span><span>(</span><span><span class="hljs-title function_ invoke__">array_intersect_key</span></span><span>(</span><span><span class="hljs-variable">$students</span></span><span>, </span><span><span class="hljs-title function_ invoke__">array_flip</span></span><span>(</span><span><span class="hljs-variable">$keys</span></span><span>)));

</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$students_with_score</span></span><span>);
</span></span>

출력 :

 <span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
    [</span><span><span class="hljs-number">0</span></span><span>] =&gt; </span><span><span class="hljs-number">85</span></span><span>
    [</span><span><span class="hljs-number">1</span></span><span>] =&gt; </span><span><span class="hljs-number">85</span></span><span>
)
</span></span>

3. 조합 사용 시나리오

Array_KeysArray_Values를 함께 사용하면 특히 배열의 값과 키를 처리해야 할 때 많은 실용적인 기능을 얻을 수 있습니다.

예 1 : 값을 기반으로 키를 필터링하고 인덱스 배열을 재구성합니다.

일부 값이 반복 될 수있는 혼합 된 연관 배열이 있다고 가정하고, 해당 배열의 키를 추출하여 특정 값 만 포함하는 재구성 된 배열을 생성하려고합니다.

 <span><span><span class="hljs-variable">$items</span></span><span> = [
    </span><span><span class="hljs-string">'item1'</span></span><span> =&gt; </span><span><span class="hljs-string">'apple'</span></span><span>,
    </span><span><span class="hljs-string">'item2'</span></span><span> =&gt; </span><span><span class="hljs-string">'orange'</span></span><span>,
    </span><span><span class="hljs-string">'item3'</span></span><span> =&gt; </span><span><span class="hljs-string">'banana'</span></span><span>,
    </span><span><span class="hljs-string">'item4'</span></span><span> =&gt; </span><span><span class="hljs-string">'apple'</span></span><span>,
    </span><span><span class="hljs-string">'item5'</span></span><span> =&gt; </span><span><span class="hljs-string">'orange'</span></span><span>
];

</span><span><span class="hljs-variable">$filter_value</span></span><span> = </span><span><span class="hljs-string">'orange'</span></span><span>;

</span><span><span class="hljs-comment">// 포함하십시오"orange"모든 키</span></span><span>
</span><span><span class="hljs-variable">$keys</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_keys</span></span><span>(</span><span><span class="hljs-variable">$items</span></span><span>, </span><span><span class="hljs-variable">$filter_value</span></span><span>);

</span><span><span class="hljs-comment">// 사용array_values이 키에 해당하는 값을 가져옵니다</span></span><span>
</span><span><span class="hljs-variable">$filtered_values</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_values</span></span><span>(</span><span><span class="hljs-title function_ invoke__">array_intersect_key</span></span><span>(</span><span><span class="hljs-variable">$items</span></span><span>, </span><span><span class="hljs-title function_ invoke__">array_flip</span></span><span>(</span><span><span class="hljs-variable">$keys</span></span><span>)));

</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$filtered_values</span></span><span>);
</span></span>

출력 :

 <span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
    [</span><span><span class="hljs-number">0</span></span><span>] =&gt; orange
    [</span><span><span class="hljs-number">1</span></span><span>] =&gt; orange
)
</span></span>
예 2 : 특정 값의 키 이름으로 모든 항목을 필터링합니다.

다차원 배열이있는 경우 특정 조건을 충족하는 배열 요소의 값을 찾아야 할 수도 있습니다. Array_KeysArray_Values를 결합하여 특정 조건으로 결과를 필터링 할 수 있습니다.

 <span><span><span class="hljs-variable">$products</span></span><span> = [
    </span><span><span class="hljs-string">'P001'</span></span><span> =&gt; [</span><span><span class="hljs-string">'name'</span></span><span> =&gt; </span><span><span class="hljs-string">'Laptop'</span></span><span>, </span><span><span class="hljs-string">'price'</span></span><span> =&gt; </span><span><span class="hljs-number">800</span></span><span>],
    </span><span><span class="hljs-string">'P002'</span></span><span> =&gt; [</span><span><span class="hljs-string">'name'</span></span><span> =&gt; </span><span><span class="hljs-string">'Phone'</span></span><span>, </span><span><span class="hljs-string">'price'</span></span><span> =&gt; </span><span><span class="hljs-number">400</span></span><span>],
    </span><span><span class="hljs-string">'P003'</span></span><span> =&gt; [</span><span><span class="hljs-string">'name'</span></span><span> =&gt; </span><span><span class="hljs-string">'Tablet'</span></span><span>, </span><span><span class="hljs-string">'price'</span></span><span> =&gt; </span><span><span class="hljs-number">300</span></span><span>],
    </span><span><span class="hljs-string">'P004'</span></span><span> =&gt; [</span><span><span class="hljs-string">'name'</span></span><span> =&gt; </span><span><span class="hljs-string">'Monitor'</span></span><span>, </span><span><span class="hljs-string">'price'</span></span><span> =&gt; </span><span><span class="hljs-number">600</span></span><span>],
];

</span><span><span class="hljs-variable">$target_price</span></span><span> = </span><span><span class="hljs-number">400</span></span><span>;

</span><span><span class="hljs-comment">// 모든 가격을 동일하게 얻습니다400제품</span></span><span>
</span><span><span class="hljs-variable">$product_keys</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_keys</span></span><span>(</span><span><span class="hljs-title function_ invoke__">array_column</span></span><span>(</span><span><span class="hljs-variable">$products</span></span><span>, </span><span><span class="hljs-string">'price'</span></span><span>), </span><span><span class="hljs-variable">$target_price</span></span><span>);

</span><span><span class="hljs-comment">// 이 제품에 대한 자세한 정보를 얻으십시오</span></span><span>
</span><span><span class="hljs-variable">$target_products</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_values</span></span><span>(</span><span><span class="hljs-title function_ invoke__">array_intersect_key</span></span><span>(</span><span><span class="hljs-variable">$products</span></span><span>, </span><span><span class="hljs-title function_ invoke__">array_flip</span></span><span>(</span><span><span class="hljs-variable">$product_keys</span></span><span>)));

</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$target_products</span></span><span>);
</span></span>

출력 :

 <span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
    [</span><span><span class="hljs-number">0</span></span><span>] =&gt; </span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
        (
            [name] =&gt; Phone
            [price] =&gt; </span><span><span class="hljs-number">400</span></span><span>
        )
)
</span></span>

4. 요약

두 가지 함수 array_values ​​및 array_keys를 결합하여 복잡한 배열 작업을 완료 할 수 있습니다. 이 두 기능과 합리적으로 일치함으로써 배열을 신속하게 찾고 필터링 및 재구성하는 데 도움이 될 수 있습니다. 이는 실제 개발에서 특히 다차원 배열을 다루고 배열의 특정 값 또는 키를 필터링 할 때 특히 중요합니다. 코드의 가독성과 효율성을 크게 향상시킬 수 있습니다.

이 두 기능의 조합을 마스터하면 배열 데이터를보다 유연하게 처리하고 개발 효율성을 향상시킬 수 있습니다.