Array Problem (Expected primary expression before ] token)

Hi. I want to show 0x34 on two cctype 7segment Displays using 74LS259 and 74LS138 using the setup given below,

For that, I wrote this piece of code,

#include <Arduino.h>
char lupTable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
byte x,z1,z2,z[2],p;
void setup()
{
x=0x34;
z1=x>>4;
z1=z1&0x0F;
z1=lupTable[z1];
z2=x>>0;
z2=z2&0x0F;
z2=lupTable[z2];
z[]={z1,z2};
DDRB=0xFF;
DDRD=0xFF;
}

void loop()
{
for (byte i=0;i<=7;i++)
{
    bitWrite(PORTD,0,bitRead(p,0));
    bitWrite(PORTD,1,bitRead(p,1));
    PORTB=i;
    digitalWrite(6,HIGH);

    digitalWrite(6,LOW);

    digitalWrite(6,HIGH);
    bitWrite(PORTD,6,bitRead(z[p],i));


}
p=p+1;
if (p>1)
{
    p=0;
}

}

But at the 13th line z[]={z1,z2};, I'm getting an error which is, "expected primary-expression before ] token''

I'm totally confused why it's happening.
Please help me by giving a solution.

//z[]={z1,z2};
z[0] = z1;
z[1] = z2;

Declaring z[] and assigning its values in a single line works just fine.

byte z[]={z1,z2};

But doing the same thing separately doesn't seem to work.

byte z[2];
z[]={z1,z2};

I wonder why that happens.

byte z[]={z1,z2};Declares and initialises the array. By definition iInitialisation can only happen once.
z[]={z1,z2};Tries to initialise the array again, which is not allowed in C/C++