일반 배열에서 동일한 키와 값을 사용하여 assoc 배열 만들기


85

다음과 같은 배열이 있습니다.

$numbers = array('first', 'second', 'third');

이 배열을 입력으로 사용하고 다음과 같은 배열을 반환하는 함수를 갖고 싶습니다.

array(
'first' => 'first',
'second' => 'second',
'third' => 'third'
)

array_walk_recursive또는 비슷한 것을 사용할 수 있는지 궁금합니다 ...


와, 빨리 답변 해 주셔서 감사합니다. 처음 두 답변은 작동하지만 조금 더 우아한 것을 찾고있었습니다.
jimiyash

답변:


172

다음 array_combine과 같이 함수 를 사용할 수 있습니다 .

$numbers = array('first', 'second', 'third');
$result = array_combine($numbers, $numbers);

1
이것은 한 줄짜리에게 좋습니다. 다음은 만료 월의 사용 사례입니다. $ months = array_combine (range (date ( 'Y'), date ( 'Y') + 10), range (date ( 'Y'), date ( 'Y') + 10 )).
axiom82 jul.

4

이 간단한 접근 방식이 작동합니다.

$new_array = array();
foreach($numbers as $n){
  $new_array[$n] = $n;
}

다음과 같이 할 수도 있습니다.

array_combine(array_values($numbers), array_values($numbers))


0

그렇게해야합니다.

function toAssoc($array) {
    $new_array = array();
    foreach($array as $value) {
        $new_array[$value] = $value;
    }       
    return $new_array;
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.