在Drupal中访问多维数组

use*_*580 1 php arrays drupal

我认为这同样是一个像PHP问题一样的drupal问题.

我有以下print_r($ node)数组

stdClass Object
(
    [vid] => 4
...
    [field_imgleft] => Array
            (
            [und] => Array
                (
                    [0] => Array
                        (
                            [value] => defaultimgleft
                            [format] => 
                            [safe_value] => defaultimgleft
                        )
                )
        )
)
Run Code Online (Sandbox Code Playgroud)

field_imgleft是节点的内容类型中的字段.由于只有一个值,[0]是该数组的最大值.我试图将[value]的值返回给变量,但是我没有运行node-> methods或node [...]等等.

Cli*_*ive 5

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

您可以像这样使用它:

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

$first_item = array_shift($items);

$value = $first_item['value'];
Run Code Online (Sandbox Code Playgroud)

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