리터럴 키로 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 5.4부터는 array ()를 []로 바꾸는 짧은 배열 구문을 사용할 수도 있습니다.
참고 URL : https://stackoverflow.com/questions/1371016/php-prepend-associative-array-with-literal-keys
'IT박스' 카테고리의 다른 글
안드로이드 버튼 선택기 (0) | 2020.07.30 |
---|---|
자바 스크립트로 텍스트 선택 지우기 (0) | 2020.07.30 |
Java의 다중 스레드 환경에서 정적 메소드 동작 (0) | 2020.07.30 |
부트 스트랩 테이블 줄무늬 : 줄무늬 배경색을 어떻게 변경합니까? (0) | 2020.07.30 |
MSMQ 샘플 응용 프로그램을 작성하는 데 필요한 최소한 (0) | 2020.07.29 |