如何在drupal中连接变量

I want to know how can I concatenate [und][0][value]. I don't want to write every time [und][0][value]. So I have do like this:

   <?php

   $und_value = $load->field_testimonial_location['und'][0]['value'];

   $query = db_select('node','n');
   $query->fields('n',array('nid'));
   $query->condition('n.type','testimonial','=');
   $result = $testimonial_query->execute();

   while($fetch = $result->fetchObject()){

    $load = node_load($fetch->nid);
    // $location = $load->field_testimonial_location['und'][0]['value']; 
    $location = $load->field_testimonial_location.$und_value;
    echo $location;
   }

But its not working. It outputs Array Array So have any idia for this problem? How can I do? Full code here

Why don't you make some function which will take node field as parameter and return it's value

function field_value($field){
  return $field['und'][0]['value'];
}

Something like that (not tested).

But if you don't want to use function try using curly braces like:

$location = $load->{field_testimonial_location.$und_value};

That should work...

Extending answer posted by MilanG, to make function more generic

function field_value($field, $index = 0 ){ return $field['und'][$index]['value']; }

There are time when you have multi value fields, in that case you have to pass index of the value also. For example

$field['und'][3]['value'];

Please do not use such abbreviations, they will not suit all cases and eventually break your code.

Instead, there is already a tool do create custom code with easier syntax: Entity Metadata Wrapper.

Basically, instead of

$node = node_load($nid);
$field_value = $node->field_name['und'][0]['value'];

you can then do something like

$node = node_load($nid);
$node_wrapper = entity_metadata_wrapper('node', $node);
$field_value = $node_wrapper->field_name->value();

With the node wrapper you can also set values of a node, it's way easier and even works in multilingual environments, no need to get the language first ($node->language) or use constants (LANGUAGE_NONE).

In my custom module, I often use $node for the node object and $enode for the wrapper object. It's equally short and still know which object I am working on.