Farklı durumlarda dize içeriği alın

4 Cevap php

Ben bir dize, bir boru ile ayrılmış her cevap gibi bir formdan veri depolama düşünüyorum. Ben sorun bazı cevaplar birden fazla öğe şeklinde gelebilir olmasıdır. Biz onların karşılık gelen cevapları ile birlikte radyo düğmesi seçimini saklamak örneğin

Question 1 - 1 Answer [A1]
Question 2 - Radio button selected [A2] + 3 form fields
Question 3 - 1 Answer [A3]

Yani gibi veri depolama düşünüyordum:

$str = A1|A2[x,x,x]|A3

Ben parantez içinde birden fazla seçim çevrelemek için seçtik nedeni soruya ilişki olması için olduğunu.

Benim çözüm çalışacağını düşünüyorum ama ben veritabanından değerleri okumak için gelip ben bir diziye değerlerini almak için PHP'nin explode() kullanacağız.

Örneğin explode("|",$str);

Verecektir:

array(0=>A1, 1=>A2[x,x,x],2=>A3);

Bu geliştirmeden önce, ne [x,x,x] içeriğini alma ve array[1] ayıran en iyi yolu olurdu?

Herhangi bir öneri çok takdir edilecektir.

Teşekkürler

4 Cevap

Eğer bir dizeye bunları açmak gerekir, bu yüzden Alternatif ziyade bir dizi onlarla başlayabilir bir diziye bunları açmak için çalışıyor bir dize olarak cevapları daha sonra olabilir:

$ Dizi = array ('A1', array (x, x, x), 'A3');

Bir dize olarak bunu ihtiyacınız varsa o zaman arayabilirsiniz:

$ Str = serialize ($ dizi);

Bu şekilde, dize patladı sonra size çözüm erişim benzer bir yöntem olsun, sadece bu kadar ise sadece kontrol edebilirsiniz gibi başka A2 [1,2,3] dize bölmek için çalışmakla uğraşmak zorunda değilsiniz bunun yerine bir dizi.

Sizin yaklaşım herhangi bir yarar sağlamaz ve gereksiz karmaşıklığı tanıttı. Neden sadece bir ilişkisel veritabanı kullanmak ve ayrı bir tablo satır veri a her parça saklamak değil mi? MySQL erişimi veya benzer DBMS yoksa, her zaman kullanabilirsiniz SQLite.

Sana serialize ve unserialize bakmak gerektiğini düşünüyorum.

Ayrıca json_encode () fonksiyonu ile json kodlanmış bir ilişkisel dizi olarak bilgi depolayabilir. Eğer veritabanından veri alıp Sonra, sadece yapardın:

$ Dizi = json_decode ($ değer);

http://php.net/manual/en/function.json-encode.php