: 배열에서 모든 키 이름을 반환합니다. 검색 값이 지정되면 값이 포함 된 모든 키를 필터링 할 수 있습니다.
<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>
우리가 여러 학생들의 성적을 저장하는 연관 배열이 있다고 가정 해 봅시다. 여기서 배열의 열쇠는 학생의 이름이고 가치는 성적이라고 가정합니다. 우리는 성적이 특정 점수 인 모든 학생들을 알고 싶습니다.
<span><span><span class="hljs-variable">$students</span></span><span> = [
</span><span><span class="hljs-string">'John'</span></span><span> => </span><span><span class="hljs-number">85</span></span><span>,
</span><span><span class="hljs-string">'Alice'</span></span><span> => </span><span><span class="hljs-number">90</span></span><span>,
</span><span><span class="hljs-string">'Bob'</span></span><span> => </span><span><span class="hljs-number">75</span></span><span>,
</span><span><span class="hljs-string">'Charlie'</span></span><span> => </span><span><span class="hljs-number">85</span></span><span>,
</span><span><span class="hljs-string">'David'</span></span><span> => </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>] => </span><span><span class="hljs-number">85</span></span><span>
[</span><span><span class="hljs-number">1</span></span><span>] => </span><span><span class="hljs-number">85</span></span><span>
)
</span></span>
Array_Keys 및 Array_Values를 함께 사용하면 특히 배열의 값과 키를 처리해야 할 때 많은 실용적인 기능을 얻을 수 있습니다.
일부 값이 반복 될 수있는 혼합 된 연관 배열이 있다고 가정하고, 해당 배열의 키를 추출하여 특정 값 만 포함하는 재구성 된 배열을 생성하려고합니다.
<span><span><span class="hljs-variable">$items</span></span><span> = [
</span><span><span class="hljs-string">'item1'</span></span><span> => </span><span><span class="hljs-string">'apple'</span></span><span>,
</span><span><span class="hljs-string">'item2'</span></span><span> => </span><span><span class="hljs-string">'orange'</span></span><span>,
</span><span><span class="hljs-string">'item3'</span></span><span> => </span><span><span class="hljs-string">'banana'</span></span><span>,
</span><span><span class="hljs-string">'item4'</span></span><span> => </span><span><span class="hljs-string">'apple'</span></span><span>,
</span><span><span class="hljs-string">'item5'</span></span><span> => </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>] => orange
[</span><span><span class="hljs-number">1</span></span><span>] => orange
)
</span></span>
다차원 배열이있는 경우 특정 조건을 충족하는 배열 요소의 값을 찾아야 할 수도 있습니다. Array_Keys 와 Array_Values를 결합하여 특정 조건으로 결과를 필터링 할 수 있습니다.
<span><span><span class="hljs-variable">$products</span></span><span> = [
</span><span><span class="hljs-string">'P001'</span></span><span> => [</span><span><span class="hljs-string">'name'</span></span><span> => </span><span><span class="hljs-string">'Laptop'</span></span><span>, </span><span><span class="hljs-string">'price'</span></span><span> => </span><span><span class="hljs-number">800</span></span><span>],
</span><span><span class="hljs-string">'P002'</span></span><span> => [</span><span><span class="hljs-string">'name'</span></span><span> => </span><span><span class="hljs-string">'Phone'</span></span><span>, </span><span><span class="hljs-string">'price'</span></span><span> => </span><span><span class="hljs-number">400</span></span><span>],
</span><span><span class="hljs-string">'P003'</span></span><span> => [</span><span><span class="hljs-string">'name'</span></span><span> => </span><span><span class="hljs-string">'Tablet'</span></span><span>, </span><span><span class="hljs-string">'price'</span></span><span> => </span><span><span class="hljs-number">300</span></span><span>],
</span><span><span class="hljs-string">'P004'</span></span><span> => [</span><span><span class="hljs-string">'name'</span></span><span> => </span><span><span class="hljs-string">'Monitor'</span></span><span>, </span><span><span class="hljs-string">'price'</span></span><span> => </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>] => </span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
[name] => Phone
[price] => </span><span><span class="hljs-number">400</span></span><span>
)
)
</span></span>
두 가지 함수 array_values 및 array_keys를 결합하여 복잡한 배열 작업을 완료 할 수 있습니다. 이 두 기능과 합리적으로 일치함으로써 배열을 신속하게 찾고 필터링 및 재구성하는 데 도움이 될 수 있습니다. 이는 실제 개발에서 특히 다차원 배열을 다루고 배열의 특정 값 또는 키를 필터링 할 때 특히 중요합니다. 코드의 가독성과 효율성을 크게 향상시킬 수 있습니다.
이 두 기능의 조합을 마스터하면 배열 데이터를보다 유연하게 처리하고 개발 효율성을 향상시킬 수 있습니다.
관련 태그:
array_values array_keys