Saving a 3D array of floats?

I am making a 2D sidescroller, which generates the main level when it is started. However, I would like to be able to save the level generated, so that the player has only that one level in his/her game session (until the game is over).
I stored the data for the level in a 3D float array. I tried PlayerPrefsX, but that does not support multidimensional arrays.
Is there any good way of saving a 3D array, or shall I just rethink my level generator algorithm?

You can flatten the array and save this along with the floats for length, width and height so you can un-flatten it after loading.

//Flatten Array
List yourList = new List();
for(int x = 0; x < yourArray.GetLength(0); x++) {
     for(int y = 0; y < yourArray.GetLength(1); y++) {
          for(int z = 0; z < yourArray.GetLength(2); z++) {
                  yourList.Add(yourArray[x,y,z]);
           }
      }
}
//Save these:
float[] savedArray = yourList.ToArray();
float savedArray_sizeY = yourArray.GetLength(1);
float savedArray_sizeZ = yourArray.GetLength(2);


//unflatten:
     int x = 0;
	int y = 0;
	int z = 0;
     
    for(int i = 0; i < savedArray .Length; i ++) {
    
    			yourArray[x,y,z] = savedArray*;*
  •  	z++;*
    
  •  	if (z == savedArray_sizeZ) {*
    
  •  		z = 0;*
    
  •  		if(y < savedArray_sizeY - 1) {*
    
  •  			y++;*
    
  •  		}*
    
  •  		else {*
    
  •  			x++;*
    
  •  			y = 0;*
    
  •  		}*