PHP의 연관 배열에 항목 푸시
다음과 같은 연관 배열에 항목을 푸시하려고했습니다.
$new_input['name'] = array(
'type' => 'text',
'label' => 'First name',
'show' => true,
'required' => true
);
array_push($options['inputs'], $new_input);
그러나 키로 '이름'대신 숫자를 추가합니다. 다른 방법이 있습니까?
$options['inputs']['name'] = $new_input['name'];
대신 array_push () 를 사용 array_merge ()
두 배열을 병합하고 항목을 단일 배열로 결합합니다.
예제 코드 -
$existing_array = array('a'=>'b', 'b'=>'c');
$new_array = array('d'=>'e', 'f'=>'g');
$final_array=array_merge($existing_array, $new_array);
final_array의 결과 배열을 반환합니다. 결과 배열의 결과는 다음과 같습니다.
array('a'=>'b', 'b'=>'c','d'=>'e', 'f'=>'g')
가능한 문제를 파악하려면 이 링크를 검토하십시오 .
이것은 멋진 기능입니다
function array_push_assoc($array, $key, $value){
$array[$key] = $value;
return $array;
}
그냥 사용
$myarray = array_push_assoc($myarray, 'h', 'hello');
WebbieDave의 솔루션이 작동합니다. 이미 'name'에있을 수있는 내용을 덮어 쓰지 않으려면 다음과 같이 할 수도 있습니다.
$options['inputs']['name'][] = $new_input['name'];
$new_input
'이름'요소 이상을 포함 할 수있는 경우 사용할 수 있습니다 array_merge
.
$new_input = array('name'=>array(), 'details'=>array());
$new_input['name'] = array('type'=>'text', 'label'=>'First name'...);
$options['inputs'] = array_merge($options['inputs'], $new_input);
Curtis의 대답은 내가 필요한 것과 매우 비슷했지만 조금 변경했습니다.
그가 사용한 곳 :
$options['inputs']['name'][] = $new_input['name'];
나는 다음을 사용했다 :
$options[]['inputs']['name'] = $new_input['name'];
다음은 DB의 쿼리를 사용하는 실제 코드입니다.
while($row=mysql_fetch_array($result)){
$dtlg_array[]['dt'] = $row['dt'];
$dtlg_array[]['lat'] = $row['lat'];
$dtlg_array[]['lng'] = $row['lng'];
}
감사!
몇 가지 스 니펫 만 변경 (array_merge 함수 사용) :-
$options['inputs']=array_merge($options['inputs'], $new_input);
$new_input = array('type' => 'text', 'label' => 'First name', 'show' => true, 'required' => true);
$options['inputs']['name'] = $new_input;
당신은 시도 할 수 있습니다.
$options['inputs'] = $options['inputs'] + $new_input;
array_merge ($ array1, $ array2)를 사용하여 연관 배열을 병합 할 수 있습니다. 예:
$a1=array("red","green");
$a2=array("blue","yellow");
print_r(array_merge($a1,$a2));
산출:
Array ( [0] => red [1] => green [2] => blue [3] => yellow )
이를 수행하는 더 좋은 방법이 있습니다.
$ arr_options 배열에 기존 배열이 포함 된 경우.
$arr_new_input['name'] = [
'type' => 'text',
'label' => 'First name',
'show' => true,
'required' => true
];
$arr_options += $arr_new_input;
경고 : $ arr_options가 있어야합니다. $ arr_options에 이미 [ 'name']이있는 경우 덮어 쓰게됩니다.
도움이 되었기를 바랍니다.
나는 사용한다 php5.6
코드 :
$person = ["name"=>"mohammed", "age"=>30];
$person['addr'] = "Sudan";
print_r($person)
산출
Array( ["name"=>"mohammed", "age"=>30, "addr"=>"Sudan"] )
먼저 배열을 정의해야합니다.
$myArray= array();
그런 다음 배열에 무엇이든 푸시 할 수 있습니다. 여기서 연관 배열로 시도합니다.
array_push( $myArray ,array('id'=>23, 'category'=>'aaa'));
PHP에서 변경된 배열을 볼 수 있습니다.
print_r($myArray);
Result: Array ( [0] => Array ( [id] => 23 [category] => aaa ) )
참고URL : https://stackoverflow.com/questions/3206020/push-item-to-associative-array-in-php
'programing tip' 카테고리의 다른 글
C ++ 정수-> std :: string 변환. (0) | 2020.10.16 |
---|---|
C #에서 yield return iterator를 사용하는 목적 / 장점은 무엇입니까? (0) | 2020.10.16 |
기존 열의 값과 동일한 기본값을 사용하여 테이블에 열 추가 (0) | 2020.10.15 |
clone () 대 복사 생성자 대 팩토리 메서드? (0) | 2020.10.15 |
클래스 기반 컴포넌트에서 React.forwardRef를 사용하는 방법은 무엇입니까? (0) | 2020.10.15 |