Assign Multiple values for a single keypad input

Hello community, this is my first topic and really new to arduino. As a part of my final year project I need to get input as a old nokia phone where one key has four inputs (Check the attachment bellow). From the research I have been doing in the community normally the 2d array we use in the Keypad library

#include <Keypad.h>
const byte ROWS = 4;
const byte COLS = 3;
char keys[ROWS][COLS] = {                    
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','9'},
  {'*','0','#'}
};

byte rowPins[ROWS] = { 22, 23, 24, 25 };    
byte colPins[COLS] = { 26, 27, 28 }; 
Keypad kpd = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); 
}

Bellow I have put my intended idea in psuedo code

BEGIN 
 ROWS = 4;
 COLS = 3;
   keys[ROWS][COLS] = {                    
  {1, {2,a,b,c} , {3,d,e,f} },
  {{4,g,h,i}, {5,j,k,l}, {6,m,n,o} },
  { {7,p,q,r,s}, {8,t,u,v}, {9,w,x,y,z},
  { {*,+} , {0, ,}, {#}}
};

Get.keyinput 
 if oneKeyInput within 1 msc
     first value in the array
 elseif twoKeyInput within 1 msc
      2nd value in the array

Is it possible to add another array as one key value ?
Is there a way to detect the time intervals between two key presses (in milliseconds) ?

cvljayawardana: Is it possible to add another array as one key value ?

Nope

cvljayawardana: Is there a way to detect the time intervals between two key presses (in milliseconds) ?

Yes, save the time (hint, millis()) when a button was pressed and compare it to the current time when the button is pressed again :)

septillion: Nope

Thank you very much for your quick reply. Is theres a work around this ?

Is theres a work around this ?

There is no workaround for working hard.

PaulS: There is no workaround for working hard.

Means i have to edit the Keypad library to accept 3d array ?

No, it means you have to write code that a double or triple press results in a different output ;) (to whatever that may be). And I think you already guessed something like that because of your second question.

The library simply tells you which button is pressed, now it's up to you to do the stuff you want with that info (and that's all it is, info.)

The library simply tells you which button is pressed, now it's up to you to do the stuff you want with that info (and that's all it is, info.)

Knowing which physical key is pressed AND knowing how long it has been since the same key was pressed last time is essential to determining what character you mean to be used when the key in row 1, column 2 is pressed once or repeatedly.

The keypad library is NOT going to handle all that hard work for you.

septillion:
The library simply tells you which button is pressed, now it’s up to you to do the stuff you want with that info (and that’s all it is, info.)

Thank you very much for your guidance, This really changed my perspective about this problem. Ill try to get the inputs in the traditional way and manipulate them by considering the time gap between button-pressed.

PaulS: The keypad library is NOT going to handle all that hard work for you.

Yes I understand that now. Thank you :)