代码之家  ›  专栏  ›  技术社区  ›  Sam

PHP基于键显示数组中对象的值

  •  0
  • Sam  · 技术社区  · 7 年前

    我有以下数组,其中包含对象和数组。如何仅根据其关键帧获取特定值(每个对象)? 我已经测试并显示了数组(见下文),但我无法根据需要隔离“name”值。

    我尝试了以下代码来获取名称值:

    case 'field_prgm_housing' :
    $node = 'field_color';
    $tids =  field_get_items('node', $node, $key, $node->language);
    $terms = taxonomy_term_load_multiple(array(), array('tid' => $tids));
    $nameonly = $terms->[0]->name[0];
    return = $nameonly;
    break;      
    Colors (Array, 2 elements)
        12 (Object) stdClass
          tid (String, 2 characters ) 12
          vid (String, 1 characters ) 3
          name (String, 9 characters ) Blue
          description (String, 0 characters )
          format (String, 13 characters ) filtered_html
          weight (String, 1 characters ) 0
          vocabulary_machine_name (String, 15 characters ) colors
          rdf_mapping (Array, 5 elements)
          path (Array, 1 element)
        13 (Object) stdClass
          tid (String, 2 characters ) 13
          vid (String, 1 characters ) 3
          name (String, 8 characters ) Green
          description (String, 0 characters )
          format (String, 13 characters ) filtered_html
          weight (String, 1 characters ) 0
          vocabulary_machine_name (String, 15 characters ) colors
          rdf_mapping (Array, 5 elements)
          path (Array, 1 element)
    
    2 回复  |  直到 7 年前
        1
  •  2
  •   K.B    7 年前
    Try this
    
    
        $node = 'field_color';
        $tids =  field_get_items('node', $node, $key, $node->language);
        $terms = taxonomy_term_load_multiple(array(), array('tid' => $tids));
    
        //loop all the values and get the require value
       $name = array();
        foreach($terms as $term){
              $name[] = $term->name;
        }
        return $name;
    
        2
  •  0
  •   MilanG    7 年前

    什么 $terms->[0] 假设是什么意思?

    $terms 是一个数组,因此必须通过指定要获取的索引来访问它,例如: $terms[12], $terms[13] ...

    该数组的元素是对象,所以当你得到一个时,你必须使用“->”运算符获取其字段(或方法)。

    所以它必须是这样的:

    $nameonly = $terms[12]->name;
    $nameonly = $terms[13]->name;
    

    或者你也可以像@kranthi建议的那样,遍历所有数组项。