2011-08-09 68 views
1

我有一些困難來解釋我的問題,有些代碼是長文本更好:動態子場分配

<?php 

$n = new stdClass(); 
$f = 'field[0][0]'; 
$n->$f = 1; 
var_dump($n); 

目前的結果是:

object(stdClass)#1 (1) { 
    ["field[0][0]"]=> 
    int(1) 
} 

期望的結果:

object(stdClass)#1 (1) { 
    ["field"]=> 
    array(1) { 
    [0]=> 
    array(1) { 
     [0]=> 
     int(1) 
    } 
    } 
} 

這可能嗎?

提前致謝。

回答

0
eval('$n->'.$f.'=1;'); 

附加到這一點,
$f可信

+0

謝謝, 。 – Sanpi

1

如何使用:

$n = new stdClass(); 
$f = 'field'; 
$n->$f = array(array(1)); 
var_dump($n); 
+0

致命錯誤:無法使用字符串作爲數組offset第4行 – k102

+0

只是更正! – linuxeasy

+0

我需要動態創建子字段。它用於在drupal 7中導入CSV文件,其映射如下:'$ mapping = array('First-name'=>'field_firstname [LANGUAGE_NONE] [0] [「value」]');' – Sanpi

0
$n = new stdClass(); 
$f = 'field'; 
$n->$f = array(array(1)); 
var_dump($n); 

object(stdClass)#1 (1) { ["field"]=> array(1) { [0]=> array(1) { [0]=> int(1) } } }