IT박스

리터럴 키로 PHP 접두사 연관 배열?

itboxs 2020. 7. 30. 10:12
반응형

리터럴 키로 PHP 접두사 연관 배열?


리터럴 키 => 값 쌍으로 연관 배열을 앞에 추가 할 수 있습니까? array_unshift ()는 숫자 키와 함께 작동하지만 리터럴 키와 함께 작동하는 것을 원합니다.

예를 들어 다음을 수행하고 싶습니다.

$array1 = array('fruit3'=>'apple', 'fruit4'=>'orange');
$array2 = array('fruit1'=>'cherry', 'fruit2'=>'blueberry');

// prepend magic

$resulting_array = ('fruit1'=>'cherry', 
                    'fruit2'=>'blueberry', 
                    'fruit3'=>'apple', 
                    'fruit4'=>'orange');

당신은 단지 할 수 없습니다 :

$resulting_array = $array2 + $array1;

?


내 대답은 아니오 야. 연관 배열 앞에 키-값 쌍을 추가 할 수 없습니다.

그러나 Union 연산자를 사용하여 배열의 시작 부분에 새 키-값 쌍이 포함 된 새 배열을 만들 수 있습니다 +. 결과는 완전히 새로운 배열이지만 새 배열을 만드는 데는 복잡성이 복잡합니다.

구문은 다음과 같습니다.

$new_array = array('new_key' => 'value') + $original_array;

참고 : array_merge ()를 사용하지 마십시오. array_merge ()는 키를 덮어 쓰고 숫자 키를 유지하지 않습니다.


상황에 따라 array_merge ()를 사용하려고합니다.

array_merge(array('fruit1'=>'cherry', 'fruit2'=>'blueberry'), array('fruit3'=>'apple', 'fruit4'=>'orange'));

array_unshift () 대신 연관 배열에 단일 값을 추가하려면 array_merge ()를 다시 사용하십시오.

array_merge(array($key => $value), $myarray);

@Cletus가 등장했습니다. 추가하기 위해 입력 배열의 요소 순서가 모호하고 최종 배열을 정렬 해야하는 경우 ksort 할 수 있습니다 .

$resulting_array = $array1 + $array2;
ksort($resulting_array);

@mvpetrovich와 동일한 방법을 사용하여 축약 형 배열을 사용하여 구문을 단축 할 수 있습니다.

$_array = array_merge(["key1" => "key_value"], $_old_array);

참고 문헌 :

PHP : array_merge ()

PHP : 배열-매뉴얼

PHP 5.4부터는 array ()를 []로 바꾸는 짧은 배열 구문을 사용할 수도 있습니다.

참고 URL : https://stackoverflow.com/questions/1371016/php-prepend-associative-array-with-literal-keys

반응형