키 값 쌍을 가진 array_push ()


183

값을 추가하려는 기존 배열이 있습니다.

나는 array_push()쓸모없는 것을 사용하려고 노력하고 있습니다.

아래는 내 코드입니다.

$data = array(
    "dog" => "cat"
);

array_push($data['cat'], 'wagon');

내가 달성하고자하는 것은 cat 을 키로 추가 $data하여 왜건 을 값으로 사용하여 아래 스 니펫과 같이 액세스하는 것입니다.

echo $data['cat']; // the expected output is: wagon

어떻게하면 되나요?

답변:


334

따라서 다음과 같은 것은 어떻습니까?

$data['cat']='wagon';

경고 : $a['123'] = 456;-문자열 '123'은 정수 키 123으로 변환됩니다.
bancer

정수 키의 경우 따옴표 / 문자열로 감싸고 싶지 않습니다.
dusoft

반드시 그런 것은 아닙니다. 다른 키가 '123a'와 같은 문자열 인 경우 모든 항목에 대해 문자열 키를 유지하는 것이 좋습니다.
bancer

51

여러 키 => 값을 추가 해야하는 경우이를 시도하십시오.

$data = array_merge($data, array("cat"=>"wagon","foo"=>"baar"));

1
루프를 사용할 수도 있습니다.
잭 페리

루프는 도움이되지 않습니다. 중복 키 이름으로 값을 푸시하려면을 사용해야 합니다 array_merge.
Richard Smith

38
$data['cat'] = 'wagon';

이것이 배열에 키와 값을 추가하는 데 필요한 전부입니다.


6

예를 들어 :

$data = array('firstKey' => 'firstValue', 'secondKey' => 'secondValue');

키 값을 변경하는 경우 :

$data['firstKey'] = 'changedValue'; 
//this will change value of firstKey because firstkey is available in array

산출:

배열 ([firstKey] => changedValue [secondKey] => secondValue)

새 키 값 쌍을 추가하려면 다음을 수행하십시오.

$data['newKey'] = 'newValue'; 
//this will add new key and value because newKey is not available in array

산출:

배열 ([firstKey] => firstValue [secondKey] => secondValue [newKey] => newValue)


5

array_push () 함수를 사용할 필요가 없으며 새 키를 사용하여 새 값을 배열에 직접 할당 할 수 있습니다.

$array = array("color1"=>"red", "color2"=>"blue");
$array['color3']='green';
print_r($array);


Output:

   Array(
     [color1] => red
     [color2] => blue
     [color3] => green
   )

또한 OP의 정확한 차이점이 무엇인지 강조해야합니다. 여기서는 대신 = 대신 사용했습니다
NitinSingh

1
이 코드는 잘못되었습니다. array_push는 두 개의 매개 변수를 사용하며, array_push에 대한 호출이 아무 것도 수행하지 않는 결과로 잘못 사용하고 있다는 경고 메시지가 표시됩니다. 코드의 두 번째 줄은 실제로하는 것입니다 $array['color3']='green'. 바로 @dusoft가 위에서 한 것입니다. 코드는 해당 솔루션을 난독 화합니다.
Richard Smith

@RichardSmith 내 실수를 보여 주셔서 감사합니다. 내 답변을 변경했습니다. :)
Deepak Vaishnav

0

배열 [ 'key'] = 값;

$data['cat'] = 'wagon';

이것이 당신이 필요로하는 것입니다. 이를 위해 array_push () 함수를 사용할 필요가 없습니다. 언젠가 문제는 매우 간단하고 우리는 복잡한 방식으로 생각합니다 :).


-3

그냥 그렇게하십시오 :

$data = [
    "dog" => "cat"
];

array_push($data, ['cat' => 'wagon']);

* PHP 7 이상에서는 ()가 아닌 []를 사용하여 배열을 생성합니다.


두 가지 문제 : 두 array_push번째 + 매개 변수를 새로운 값으로 추가하고 (키-값 쌍이 아닌 array_merge) PHP 7은 array()배열 구문 (약식 []구문 뿐만 아니라)도 행복하게 받아들입니다.
Chris Forrence
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.