web-dev-qa-db-fra.com

array_Push pour les tableaux associatifs

J'essaie d'étendre un tableau d'assoc comme celui-ci, mais PHP ne l'aime pas.

Je reçois ce message:

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

Voici mon code:

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

Où est-ce que je me suis trompé?

20
EnglishAdam

Voici votre problème:

$ newArray [$ key] est null car $ newArray est un tableau vide et n'a pas encore de valeurs.

Vous pouvez remplacer votre code par

array_Push( $newArray, $value );

ou au lieu de array_Push à utiliser

$newArray[$key] = $value;

afin que vous puissiez conserver l'index de votre clé $.

39
akDeveloper

J'utilise la fonction prédéfinie array_merge pour Push in array comme associative.

Par exemple:-

$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')
7
vineet