26

このように連想配列を拡張しようとしていますが、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);

どこで私は間違えましたか?

4

2 に答える 2

53

これがあなたの問題です:

$ newArray [$ key]がnullであるため、$ newArrayは空の配列であり、まだ値がありません。

コードを次のように置き換えることができます

array_push( $newArray, $value );

または使用するarray_pushの代わりに

$newArray[$key] = $value;

そのため、$keyのインデックスを保持できます。

于 2011-11-27T21:47:48.213 に答える
8

配列を連想としてプッシュするには、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')
于 2015-04-22T06:36:22.263 に答える