array_push用于关联数组

Eng*_*dam 21 php arrays associative-array array-push

我正在尝试像这样扩展一个关联数组,但PHP不喜欢它.

我收到此消息:

Warning: array_push() expects parameter 1 to be array, null given
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

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

我哪里做错了?

akD*_*per 39

这是你的问题:

$ newArray [$ key]为null因为$ newArray是一个空数组而且还没有值.

你可以用你的代码替换你的代码

array_push( $newArray, $value );
Run Code Online (Sandbox Code Playgroud)

或者代替array_push使用

$newArray[$key] = $value;
Run Code Online (Sandbox Code Playgroud)

所以你可以保留你的$ key的索引.

  • 不同的是`array_push()`总是在数组的底部添加一个元素,而`$ array [$ key] = $ value`可能会覆盖你的`$ array`的一个元素. (4认同)

vin*_*eet 8

我使用array_merge预构建函数将push in array作为关联.

例如:-

$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')
Run Code Online (Sandbox Code Playgroud)