1

我认为这与 PHP 问题一样是一个 drupal 问题。

我有以下 print_r($node) 数组

stdClass Object
(
    [vid] => 4
...
    [field_imgleft] => Array
            (
            [und] => Array
                (
                    [0] => Array
                        (
                            [value] => defaultimgleft
                            [format] => 
                            [safe_value] => defaultimgleft
                        )
                )
        )
)

field_imgleft 是节点内容类型中的一个字段。由于只有一个值,因此 [0] 是该数组的最大值。我正在尝试将 [value] 的值返回给变量,但是我对 node-> 方法或 node[...] 等没有这样的运气。

4

2 回答 2

5

有一个内置的 API 函数可以从实体中提取字段值:field_get_items().

你可以像这样使用它:

$items = field_get_items('node', $node, 'field_imgleft');

$first_item = array_shift($items);

$value = $first_item['value'];

建议使用此方法而不是直接访问数组,因为它会为您处理字段转换……无需再担心使用'und'

于 2012-06-19T22:00:38.003 回答
2

我建议使用Devel 模块,这样您就可以利用 dpm() 函数作为改进的 print_r();

dpm( $node->field_imgleft['und'][0]['value'] );
于 2012-06-19T21:33:35.247 回答