PHP
여러 배열을 함께 처리하기
수색…
배열 병합 또는 병합
$fruit1 = ['apples', 'pears'];
$fruit2 = ['bananas', 'oranges'];
$all_of_fruits = array_merge($fruit1, $fruit2);
// now value of $all_of_fruits is [0 => 'apples', 1 => 'pears', 2 => 'bananas', 3 => 'oranges']
array_merge
는 숫자 인덱스를 변경하지만 문자열 인덱스를 덮어 씁니다.
$fruit1 = ['one' => 'apples', 'two' => 'pears'];
$fruit2 = ['one' => 'bananas', 'two' => 'oranges'];
$all_of_fruits = array_merge($fruit1, $fruit2);
// now value of $all_of_fruits is ['one' => 'bananas', 'two' => 'oranges']
array_merge
는 인덱스의 번호를 다시 매길 수없는 경우 첫 번째 배열의 값을 두 번째 배열의 값으로 덮어 씁니다.
+
연산자를 사용하면 두 배열을 병합하여 첫 번째 배열의 값을 덮어 쓰지 않지만 숫자 인덱스의 번호를 다시 지정하지 않으므로 첫 번째 배열에서도 사용되는 인덱스가있는 배열의 값을 잃을 수 있습니다 .
$fruit1 = ['one' => 'apples', 'two' => 'pears'];
$fruit2 = ['one' => 'bananas', 'two' => 'oranges'];
$all_of_fruits = $fruit1 + $fruit2;
// now value of $all_of_fruits is ['one' => 'apples', 'two' => 'pears']
$fruit1 = ['apples', 'pears'];
$fruit2 = ['bananas', 'oranges'];
$all_of_fruits = $fruit1 + $fruit2;
// now value of $all_of_fruits is [0 => 'apples', 1 => 'pears']
배열 교차
array_intersect
함수는이 함수에 전달 된 모든 배열에 존재하는 값의 배열을 반환합니다.
$array_one = ['one', 'two', 'three'];
$array_two = ['two', 'three', 'four'];
$array_three = ['two', 'three'];
$intersect = array_intersect($array_one, $array_two, $array_three);
// $intersect contains ['two', 'three']
배열 키는 보존됩니다. 원래 배열의 인덱스는 그렇지 않습니다.
array_intersect
는 배열의 값만 검사합니다. array_intersect_assoc
함수는 배열과 키의 교차를 반환합니다.
$array_one = [1 => 'one',2 => 'two',3 => 'three'];
$array_two = [1 => 'one', 2 => 'two', 3 => 'two', 4 => 'three'];
$array_three = [1 => 'one', 2 => 'two'];
$intersect = array_intersect_assoc($array_one, $array_two, $array_three);
// $intersect contains [1 =>'one',2 => 'two']
array_intersect_key
함수는 키의 교집합 만 검사합니다. 그것은 모든 배열에 키를 반환합니다.
$array_one = [1 => 'one',2 => 'two',3 => 'three'];
$array_two = [1 => 'one', 2 => 'two', 3 => 'four'];
$array_three = [1 => 'one', 3 => 'five'];
$intersect = array_intersect_key($array_one, $array_two, $array_three);
// $intersect contains [1 =>'one',3 => 'three']
두 개의 배열 (하나의 키, 다른 키의 값)
다음 예제에서는 두 개의 배열을 하나의 연관 배열로 병합하는 방법을 보여줍니다. 여기서 키 값은 첫 번째 배열의 항목이고 값은 두 번째 배열의 항목입니다.
$array_one = ['key1', 'key2', 'key3'];
$array_two = ['value1', 'value2', 'value3'];
$array_three = array_combine($array_one, $array_two);
var_export($array_three);
/*
array (
'key1' => 'value1',
'key2' => 'value2',
'key3' => 'value3',
)
*/
다차원 배열을 연관 배열로 변경
다음과 같은 다차원 배열이있는 경우 :
[
['foo', 'bar'],
['fizz', 'buzz'],
]
그리고 이것을 다음과 같은 연관 배열로 변경하려고합니다 :
[
'foo' => 'bar',
'fizz' => 'buzz',
]
다음 코드를 사용할 수 있습니다.
$multidimensionalArray = [
['foo', 'bar'],
['fizz', 'buzz'],
];
$associativeArrayKeys = array_column($multidimensionalArray, 0);
$associativeArrayValues = array_column($multidimensionalArray, 1);
$associativeArray = array_combine($associativeArrayKeys, $associativeArrayValues);
또는 $associativeArrayKeys
및 $associativeArrayValues
설정하지 않고이 간단한 하나의 라이너를 사용할 수 있습니다.
$associativeArray = array_combine(array_column($multidimensionalArray, 0), array_column($multidimensionalArray, 1));
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow