[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"] )