Ben bir dizi var:
$arr = array('foo', 'bar', 'bash', 'monkey', 'badger');
Ben o diziye elemanları listemde değişkenleri () olarak görünmesini istiyorum:
list($foo, $bar, $bash, $monkey, $badger) = $data;
Aslında değişkenleri belirtmeden, denedim;
list(implode(",$", $arr)) = $data; and
list(extract($arr)) = $data;
Ama onlar işe yaramazsa, ben alıyorum:
Fatal error: Can't use function return value in write context
Herkes bu mümkün olup olmadığını herhangi bir fikrin var mı?
GÜNCELLEME: Daha fazla içerik:
Ben bir API veri CSV alıyorum, birinci satır izleyen her satır veri, sütun adlarıdır. Şöyle bir ilişkisel dizi inşa etmek istiyorum:
$data[0]['colname1'] = 'col1data';
$data[0]['colname2'] = 'col2data';
$data[0]['colname3'] = 'col3data';
$data[1]['colname1'] = 'col1data';
$data[1]['colname2'] = 'col2data';
$data[1]['colname3'] = 'col3data';
Bunu yapmadan önce, ancak, ben gereken tüm sütunları olduğundan emin olmak istiyorum. Yani, CSV ihtiyacım tüm sütunları içermiyor sağlamak için bazı kontrolleri çalıştırmak, ben gerektiren sütun adları ile bir dizi oluşturmak. Bir kez yapılır, thats kodu (CSV veri her satır için) (bir foreach üzerinde yürütüldüğü) biraz bu gibi görünüyor:
//$data is an array of data WITHOUT string indexes
list( $col1,
$col2,
$col3,
...
$col14
) = $data;
foreach($colNames AS $name)
{
$newData[$i][$name] = $$name;
}
// Increemnt
$i++;
Yerine açıkça her değişken adı koyarak, liste fonksiyonu BU kullanmak için biraz zaman kazanmak istiyorum gerçi ben zaten sütun adının bir dizi, ben gibi.
Veri temizlenmiş ve başka bir yerde dezenfekte edilir.
Alkış,
Mikrofon