2010-01-15 4 views
0

Est-il possible de array_push à un tableau multidimensionnel?php Multidimensional Array push

Création du tableau à l'aide:

$ObjectArray = array(); 
$ShiftArray = array($ObjectArray); 
$WeekShiftArray = array($ShiftArray); 
$MasterShiftArray = array($WeekShiftArray); 

Et en essayant de pousser le tableau en utilisant

array_push($MasterShiftArray[$last_monday_from_date][$CurrentShift->Offset][$CurrentShift->Shift], $CurrentShift); 

Mais je reçois:

Attention: array_push() 1 à paramètre attend be array, objet donné dans /opt/lampp/htdocs/sandboxj/blog/wp-content/plugins/Shifty/AddShift.php à la ligne 94

Toute aide serait appréciée.

Répondre

0

Comme son nom l'indique, $ ObjectArray est probablement un tableau d'objets, pas un tableau de tableaux. Donc, vous essayez de pousser les valeurs dans un objet.

EDIT
Je suppose que vous n'êtes pas montrer le contenu réel de $ ObjectArray ici BTW. Est-ce correct?

EDIT 2
Hmm, je l'ai testé maintenant, et les niveaux que vous abordez fonctionnent très bien avec l'exemple que vous donnez, même si le objectArray $ contient des objets. Il se passe donc probablement quelque chose d'autre que nous ne voyons pas. Etes-vous sûr que $ ObjectArray est un tableau au moment de l'adresser?

EDIT 3
Qu'est-ce que vous obtenez lorsque vous faites un var_dump ($ ObjectArray) juste avant l'appel array_push?

0

vous pouvez simplement faire

$MasterShiftArray[$last_monday_from_date][$CurrentShift->Offset][$CurrentShift->Shift][] = $CurrentShift;