[php] 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'];
}
감사!
답변
나는 사용한다 php5.6
코드 :
$person = ["name"=>"mohammed", "age"=>30];
$person['addr'] = "Sudan";
print_r($person)
산출
Array( ["name"=>"mohammed", "age"=>30, "addr"=>"Sudan"] )