关联数组的array_push

2022-08-30 16:26:51

我试图像这样扩展一个assoc数组,但PHP不喜欢它。

我收到以下消息:

Warning: array_push() expects parameter 1 to be array, null given

这是我的代码:

$newArray = array();  
foreach ( $array as $key => $value ) { 
    $array[$key + ($value*100)] = $array[$key];
    unset ( $array[$key] );
    array_push ( $newArray [$key], $value );
}
//}
print_r($newArray);

我哪里做错了?


答案 1

这是你的问题:

$newArray[$key] 为空原因,$newArray为空数组且尚未变值。

您可以将代码替换为

array_push( $newArray, $value );

或代替array_push使用

$newArray[$key] = $value;

这样您就可以保留$key的索引。


答案 2

我使用array_merge预构建的函数作为关联在数组中推送。

例如:-

$jsonDataArr=array('fname'=>'xyz','lname'=>'abc');
$pushArr=array("adm_no" => $adm_no,'date'=>$date);
$jsonDataArr = array_merge($jsonDataArr,$pushArr);
print_r($jsonDataArr);//Array ( [fname] => xyz [lname] => abc [adm_no] =>1234 [date] =>'2015-04-22')