$json = '["3", "2", "1"]';
$arr = json_decode($json, true);
extract($arr, EXTR_PREFIX_ALL, 'var');
// Dinamik
for ($i = 0; $i < count($arr); $i++) {
echo ${'var_'.$i} . '
';
}
// Statik
echo $var_0; // 3
echo $var_1; // 2
echo $var_2; // 1
extract() => Dizi haline getirilmiş json verisinin bütün elemanlarının anahtarlarını (key) birer değişken şeklinde alabilmek için kullanılan fonksiyon. Fakat bu dizideki elemanların anahtar değerleri belirtilmediği için otomatik olarak 0,1,2 olarak oluşturulurlar. PHP de değişken adları rakam ile başlayamayacağı için bu değişkenlere bir prefix (ön_ek) ekleyerek dışarı çıkardık. Hepsinin başına birer prefix ekleyebilmek için EXTR_PREFIX_ALL flag ini kullandık, eğer bu dizide kullanıcı tarafından belirtilen bir anahtar değeri bile olsa bunun başına üçüncü parametre olarak belirttiğimiz 'var' değeri getirilir. (Bu tamamen kullanıcıya bağlı bir ad seçimi) Sadece anahtar değerleri rakam olan dizi elemanlarının başına prefix getirmek için EXTR_PREFIX_INVALID flag i de kullanılabilir. Bu fonksiyon dışarıya değişken adı aktarırken belirttiğimiz prefix değerinin sonuna _ (alt çizgi) karakterini ekliyor. Sonuç olarak elimizde (bu dizi için) $var_0, $var_1 ve $var_2 değişkenleri olmuş oluyor.