반응형
리터럴 키를 가진 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);
@mvpetrovich와 같은 방법을 사용하면 배열의 단축 버전을 사용하여 구문을 줄일 수 있습니다.
$_array = array_merge(["key1" => "key_value"], $_old_array);
참고 자료:
PHP 5.4에서는 array()를 []로 대체하는 짧은 배열 구문을 사용할 수도 있습니다.
@Cletus는 딱 들어맞았다.덧붙여 입력 배열의 요소의 순서가 애매하고, 최종 배열을 정렬할 필요가 있는 경우는, 다음과 같이 ksort 할 수 있습니다.
$resulting_array = $array1 + $array2;
ksort($resulting_array);
언급URL : https://stackoverflow.com/questions/1371016/php-prepend-associative-array-with-literal-keys
반응형
'source' 카테고리의 다른 글
PHP를 사용하여 MySQL datetime에서 다른 형식으로 변환 (0) | 2022.10.26 |
---|---|
PHP 하위 문자열 추출.첫 번째 '/' 또는 전체 문자열 앞에 문자열을 가져옵니다. (0) | 2022.10.26 |
모든 텍스트 기반 필드에 범용 varchar(255)를 사용하면 단점이 있습니까? (0) | 2022.10.06 |
Composer가 [Reflection]를 던지다예외] 클래스 Fxp\Composer\자산 플러그인\저장소\npmRepository가 존재하지 않습니다. (0) | 2022.10.06 |
Vue-router: Enter 가드가 하위 경로에 대해 제대로 작동하지 않습니다. (0) | 2022.10.06 |