Is there a way to find out an array index when you click on a game object that is stored in that array? I'm not interested in the value in this case just it's index.

If you have access to both the game object and the array in which it's stored, you should be able to search the array for the game object in question; this will give you the corresponding index.

If that doesn't answer your question, perhaps you could provide some more information about the problem.

Here's a C# method (untested) that should return the j & k of the object you are searching for:

bool FindIndicesOfObject(GameObject objectToLookFor, out int j, out int k)
{
    for (j = 0; j < blockRow; j++)
    {
        for (k = 0; k < blockCol; k++)
        {
            // Is this the one?
            if (blockLocations[j,k] == objectToLookFor)
            {
                return true;
            }
        }
    }
    j = k = -1;
    return false;
}

You would call it with code that looks something like this

int jFound;
int kFound;
if ( FindIndicesOfObject(objectClickedOn, out jFound, out kFound) )
{
   // do something with jFound & kFound
}

First of course you need to know which GameObject was clicked on. I'm assuming you know how to do that; if not, there have been other questions asked on that topic, for instance this one.

Yea, I can't use findbytag or something to that extent. I'm generating a 6*7 2d array equaling 42 random blocks from 5 different prefabs so, name and tag are there multiple times. Here is my code that generates my blocks so you can see what I'm doing. This is why I'm having a hard time figuring out how to find what array index the object I'm clicking on is in so I can start to compare it to blocks around it for matches.

    void Start()
{
    // Instantiate game blocks and load them in array for later
    for (int j = 0; j < blockRow; j++)
    {
        for (int k = 0; k < blockCol; k++)
        {
            // Setup vector3 for our block
            prefabPosition = (Vector3)blockLocations[index];

            // Setup random number for block colors and create block
            System.Random randomNumber = new System.Random();
            blockColor = randomNumber.Next(0, 5);
            Thread.Sleep(rndDelay);

            switch (blockColor)
            {
                case 0:
                    blocks[j, k] = (GameObject)Instantiate(BlueBlockPrefab, prefabPosition, Quaternion.identity);
                    break;
                case 1:
                    blocks[j, k] = (GameObject)Instantiate(RedBlockPrefab, prefabPosition, Quaternion.identity);
                    break;
                case 2:
                    blocks[j, k] = (GameObject)Instantiate(OrangeBlockPrefab, prefabPosition, Quaternion.identity);
                    break;
                case 3:
                    blocks[j, k] = (GameObject)Instantiate(GreenBlockPrefab, prefabPosition, Quaternion.identity);
                    break;
                case 4:
                    blocks[j, k] = (GameObject)Instantiate(PurpleBlockPrefab, prefabPosition, Quaternion.identity);
                    break;
            }
            // Go to next value in coordinates array
            index++;
        }
    }
}