Array_Values () 는 배열의 모든 값을 반환하는 PHP의 내장 함수이며 반환 된 배열은 키 이름이없는 배열이며 모든 키는 다시 표시됩니다 (0부터 시작).
함수 정의 :
<span><span><span class="hljs-title function_ invoke__">array_values</span></span><span>(</span><span><span class="hljs-keyword">array</span></span><span> </span><span><span class="hljs-variable">$array</span></span><span>) : </span><span><span class="hljs-keyword">array</span></span><span>
</span></span>
$ 배열 : 입력 배열, Array_Values ()는 이 배열의 모든 값을 반환합니다.
반환 값 : 원래 배열의 모든 값을 포함하는 새 배열과 원래 배열의 키 이름은 연속 숫자 (0부터 시작)로 재설정됩니다.
먼저, 일반 배열에서 array_values ()를 사용하는 방법을 보여주는 간단한 예를 살펴 보겠습니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$arr</span></span><span> = [
</span><span><span class="hljs-number">1</span></span><span> => </span><span><span class="hljs-string">'apple'</span></span><span>,
</span><span><span class="hljs-number">2</span></span><span> => </span><span><span class="hljs-string">'banana'</span></span><span>,
</span><span><span class="hljs-number">3</span></span><span> => </span><span><span class="hljs-string">'cherry'</span></span><span>
];
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_values</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$result</span></span><span>);
</span><span><span class="hljs-meta">?></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>] => apple
[</span><span><span class="hljs-number">1</span></span><span>] => banana
[</span><span><span class="hljs-number">2</span></span><span>] => cherry
)
</span></span>
원래 배열의 키 이름 (1, 2, 3)이 0, 1, 2로 재설정되었으며 값은 남아 있음을 알 수 있습니다.
다차원 배열의 경우 array_values ()를 사용하여 값을 추출 할 수도 있습니다. 그러나 Array_Values () 는 배열의 가장 바깥 쪽 층에만 작용하며 내부 서브 어레이를 재귀 적으로 가로 지르지 않을 것입니다. 다차원 배열에서 모든 값을 가져와야하는 경우 추가 처리가 필요합니다.
모든 값을 추출하려는 다중 서브 어레이가있는 2 차원 배열이 있다고 가정합니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$arr</span></span><span> = [
</span><span><span class="hljs-string">"fruit"</span></span><span> => [</span><span><span class="hljs-string">"apple"</span></span><span>, </span><span><span class="hljs-string">"banana"</span></span><span>],
</span><span><span class="hljs-string">"vegetable"</span></span><span> => [</span><span><span class="hljs-string">"carrot"</span></span><span>, </span><span><span class="hljs-string">"tomato"</span></span><span>],
</span><span><span class="hljs-string">"meat"</span></span><span> => [</span><span><span class="hljs-string">"chicken"</span></span><span>, </span><span><span class="hljs-string">"beef"</span></span><span>]
];
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_values</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$result</span></span><span>);
</span><span><span class="hljs-meta">?></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>
(
[</span><span><span class="hljs-number">0</span></span><span>] => apple
[</span><span><span class="hljs-number">1</span></span><span>] => banana
)
[</span><span><span class="hljs-number">1</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>] => carrot
[</span><span><span class="hljs-number">1</span></span><span>] => tomato
)
[</span><span><span class="hljs-number">2</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>] => chicken
[</span><span><span class="hljs-number">1</span></span><span>] => beef
)
)
</span></span>
보시다시피, Array_Values ()는 외부 배열에서만 작동하며 각 서브 어레이의 내용을 변경하지 않습니다.
키 이름을 유지하지 않고 다차원 배열에서 모든 값을 얻으려면 재귀 적으로 처리 할 수 있습니다. Array_Map () 함수를 Array_Values () 와 결합하여 사용하여 달성 할 수 있습니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">get_all_values</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$array</span></span></span><span>) {
</span><span><span class="hljs-variable">$values</span></span><span> = </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 class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$values</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> &</span><span><span class="hljs-variable">$value</span></span><span>) {
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">is_array</span></span><span>(</span><span><span class="hljs-variable">$value</span></span><span>)) {
</span><span><span class="hljs-variable">$value</span></span><span> = </span><span><span class="hljs-title function_ invoke__">get_all_values</span></span><span>(</span><span><span class="hljs-variable">$value</span></span><span>); </span><span><span class="hljs-comment">// 내부 배열을 재귀 적으로 처리합니다</span></span><span>
}
}
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$values</span></span><span>;
}
</span><span><span class="hljs-variable">$arr</span></span><span> = [
</span><span><span class="hljs-string">"fruit"</span></span><span> => [</span><span><span class="hljs-string">"apple"</span></span><span>, </span><span><span class="hljs-string">"banana"</span></span><span>],
</span><span><span class="hljs-string">"vegetable"</span></span><span> => [</span><span><span class="hljs-string">"carrot"</span></span><span>, </span><span><span class="hljs-string">"tomato"</span></span><span>],
</span><span><span class="hljs-string">"meat"</span></span><span> => [</span><span><span class="hljs-string">"chicken"</span></span><span>, </span><span><span class="hljs-string">"beef"</span></span><span>]
];
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">get_all_values</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$result</span></span><span>);
</span><span><span class="hljs-meta">?></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>] => apple
[</span><span><span class="hljs-number">1</span></span><span>] => banana
[</span><span><span class="hljs-number">2</span></span><span>] => carrot
[</span><span><span class="hljs-number">3</span></span><span>] => tomato
[</span><span><span class="hljs-number">4</span></span><span>] => chicken
[</span><span><span class="hljs-number">5</span></span><span>] => beef
)
</span></span>
재귀로, 우리는 다차원 배열에서 모든 값을 성공적으로 추출하고 평평한 배열을 반환합니다.
때로는 다차원 배열의 모든 값을 단일 배열로 병합하려고합니다. 이 경우 Array_Merge () 와 함께 Array_Values ()를 사용할 수 있습니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$arr</span></span><span> = [
</span><span><span class="hljs-string">"fruit"</span></span><span> => [</span><span><span class="hljs-string">"apple"</span></span><span>, </span><span><span class="hljs-string">"banana"</span></span><span>],
</span><span><span class="hljs-string">"vegetable"</span></span><span> => [</span><span><span class="hljs-string">"carrot"</span></span><span>, </span><span><span class="hljs-string">"tomato"</span></span><span>],
</span><span><span class="hljs-string">"meat"</span></span><span> => [</span><span><span class="hljs-string">"chicken"</span></span><span>, </span><span><span class="hljs-string">"beef"</span></span><span>]
];
</span><span><span class="hljs-variable">$flattened</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_merge</span></span><span>(
</span><span><span class="hljs-title function_ invoke__">array_values</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>[</span><span><span class="hljs-string">'fruit'</span></span><span>]),
</span><span><span class="hljs-title function_ invoke__">array_values</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>[</span><span><span class="hljs-string">'vegetable'</span></span><span>]),
</span><span><span class="hljs-title function_ invoke__">array_values</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>[</span><span><span class="hljs-string">'meat'</span></span><span>])
);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$flattened</span></span><span>);
</span><span><span class="hljs-meta">?></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>] => apple
[</span><span><span class="hljs-number">1</span></span><span>] => banana
[</span><span><span class="hljs-number">2</span></span><span>] => carrot
[</span><span><span class="hljs-number">3</span></span><span>] => tomato
[</span><span><span class="hljs-number">4</span></span><span>] => chicken
[</span><span><span class="hljs-number">5</span></span><span>] => beef
)
</span></span>
이러한 방식으로, 여러 하위 수치를 배열로 결합하여 더 쉽게 후속 처리 할 수 있습니다.
Array_Values () 는 특히 다차원 배열을 처리 할 때 매우 유용한 PHP 기능으로 모든 값을 쉽게 추출 할 수 있습니다. 그것이 모든 서브 어레이의 값을 재귀 적으로 추출하는 것은 아니지만 재귀 함수를 작성하거나 다른 PHP 함수와 함께 쉽게이를 달성 할 수 있습니다.
이 기사가 특정 예제를 통해 array_values () 함수를 더 잘 이해하고 사용하는 데 도움이되기를 바랍니다.
관련 태그:
array_values