array_push для ассоциативных массивов - PullRequest
19 голосов
/ 28 ноября 2011

Я пытаюсь расширить массив 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);

Где я ошибся?

Ответы [ 2 ]

36 голосов
/ 28 ноября 2011

Это ваша проблема:

$ newArray [$ key] имеет значение null, поскольку $ newArray является пустым массивом и еще не имеет значений.

Вы можете заменить свой код на

array_push( $newArray, $value );

или вместо array_push использовать

$newArray[$key] = $value;

чтобы вы могли сохранить индекс своего ключа $.

7 голосов
/ 22 апреля 2015

Я использую встроенную функцию 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')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...