PHP bir dize işleme

2 Cevap php

Ben PHP sahip bir dize sıralarken bir yol gerekir, dize aşağıdaki gibi biçimlendirilmiş, ama çok daha büyük olmasıdır.

{ 1, 3, 1, 2, }, { 2, 3, 2, 1, }, { 3, 3, 2, 2, }, { 1, 2, 3, 1, },

Ne yapmam gerek olacak bir diziye parantez içinde sayıların her kümesi açmak olduğunu. Yani bu durumda her bir dizi dört değerleri ile dört diziler olurdu.

İlk dizi aşağıdaki gibi görünecektir:

array1[0] == 1
array1[1] == 3
array1[2] == 1
array1[3] == 2

Bunu nasıl yönetmek istiyorsunuz?

2 Cevap

Ben (<50) yorum yapamam ama Sean Bright, boş eko ile sorun json_decode [] içindeki sondaki "," gibi olmamasıdır ..

edit:

$ Gelen = str_replace (array ('{', '}'), array ('[', ']'), $ gelen);

giderir.

Daha sonra virgül bölünmüş, ben Kapat Brace'den bölünmüş düşünüyorum. Bu (sizin bakış bağlı olarak, muhtemelen zaten) kod yazmak kolay yolu olabilir, ama karmaşıklık açısından en verimli istemem.

En verimli, sadece bir virgül veya kuşak bulmak zaman farklı eylemler gerçekleştirerek, dizi üzerinden yürümek olacaktır:

 arrayOfArrays = new Array()
 masterIndex = 0
 arrayOfArrays[masterIndex] = new Array()

 for char c in string
   if c == '}'
     masterIndex++
     arrayOfArrays[masterIndex] = new Array()
   else if c == ','
     append num to arrayOfArrays[masterIndex]
   else if c is whitespace
     noop
   else
     append c to num