Arrays are reference types, reference types have to be created before they can be used. You are attempting to assign a value to the first element of the array j, without first creating the array. If it works in PHP that's because PHP is doing some auto-magical initialization (i.e. best guess).
Now, arrays in .Net are of a fixed size, determined when they are created. If you are dealing with an array that doesn't change size, then you could declare it as:
Dim x As Integer = 100 ' or whatever is appropriate.
Dim j() as String = New String(x)
Dim i As Integer
If (i = 1) Then
j(0) = "x"
Else
j(0) = "d"
End If
If you don't know the number of elements in advance, then you shouldn't use an array, you should use a list.
Dim j as List(Of String) = New List(Of String)
Dim i As Integer
If (i = 1) Then
j.Add("x")
Else
j.Add("d")
End If
To use the List you'll have to import System.Collections.Generic. I'd really recommend using a list unless absolutely forced to do otherwise -- it's simply a much better structure to deal with.