PHP의 연결 배열에 항목 푸시
다음과 같이 항목을 연관 배열에 푸시하려고 했습니다.
$new_input['name'] = array(
'type' => 'text',
'label' => 'First name',
'show' => true,
'required' => true
);
array_push($options['inputs'], $new_input);
단, 의 키와 같이 'name' 대신 숫자가 추가됩니다.다른 방법이 있나요?
$options['inputs']['name'] = $new_input['name'];
array_push() 대신 array_merge()를 사용합니다.
2개의 어레이를 Marge하고 그 아이템을 1개의 어레이로 결합합니다.
코드 예시 -
$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'];
사용하고 있다php5.6
코드:
$person = ["name"=>"mohammed", "age"=>30];
$person['addr'] = "Sudan";
print_r($person)
산출량
Array( ["name"=>"mohammed", "age"=>30, "addr"=>"Sudan"] )
한다면$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);
커티스의 대답은 내가 필요로 하는 것에 매우 가까웠지만, 나는 그것을 조금 바꿨다.
사용처:
$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;
이를 위한 더 나은 방법이 있습니다.
어레이 $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']이 있으면 덮어씁니다.
이게 도움이 됐으면 좋겠다.
시도해 보세요.
$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 )
언급URL : https://stackoverflow.com/questions/3206020/push-item-to-associative-array-in-php
'programing' 카테고리의 다른 글
find(), findOrFail(), first(), firstOrFail(), get(), list() 및 toArray()의 차이점은 무엇입니까? (0) | 2022.10.22 |
---|---|
Grunt가 다른 설정에 대해 index.html을 생성하도록 합니다. (0) | 2022.10.22 |
단일 곱셈으로 비트 추출 (0) | 2022.10.22 |
다중 열 외부 키: 단일 열을 모두가 아닌 Null "ON DELETE"로 설정합니다. (0) | 2022.10.22 |
View의 getWidth() 및 getHeight()는 0을 반환합니다. (0) | 2022.10.21 |