Array_push для ассоциативных массивов
Я пытаюсь расширить подобный массив, как это, но 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;
чтобы вы могли сохранить индекс своего ключа $.
Ответ 2
Я использую предварительно созданную функцию array_merge для массива push в качестве ассоциативного.
Например: -
$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')