【问题标题】:how can combine different index into one index如何将不同的索引组合成一个索引
【发布时间】:2016-02-18 06:49:52
【问题描述】:

我正在尝试将不同的索引组合成一个索引。给定的代码是示例..

Array(
[0] => stdClass Object
    (
        [player_id] => 92
        [player_name] => XYZ
    )

[1] => stdClass Object
    (
        [player_type_id] => 4
        [type] => All-Rounder
    ))

预期的答案是

Array([0] => stdClass Object
     ( 
      [player_id] => 92
      [player_name] => XYZ
      [player_type_id] => 4
      [type] => All-Rounder
     )

【问题讨论】:

    标签: php arrays arrayobject


    【解决方案1】:

    试试这个:

    $obj_merged = (object) array_merge((array) $obj1, (array) $obj2);

    【讨论】:

      【解决方案2】:

      请试试这个:

      $objArr1 =  (array)$yourArr[0];
      $objArr2 =  (array)$yourArr[1];
      
      $mergedArr = (object)array_merge($objArr1,$objArr2);
      

      【讨论】:

        【解决方案3】:

        您可以通过两种方式实现。

        1) 使用array_merge函数

        2) 使用+ 运算符

        参考下面的例子:

        $obj1 = new StdClass();
        $obj1->player_id = 92;
        $obj1->player_name = 'Test Name';
        
        
        $obj2 = new StdClass();
        $obj2->player_type_id = 92;
        $obj2->type = 'Test Name';
        
        $array = array($obj1, $obj2);
        
        $merged_array = (object) ((array) $obj1 + (array) $obj2);
        
        print_r($merged_array);
        
        echo '--------------------------------------- <br />';
        $obj_merged = (object) array_merge((array) $obj1, (array) $obj2);
        
        print_r($obj_merged);
        

        输出:

        stdClass Object
        (
            [player_id] => 92
            [player_name] => Test Name
            [player_type_id] => 92
            [type] => Test Name
        )
        --------------------------------------- 
        stdClass Object
        (
            [player_id] => 92
            [player_name] => Test Name
            [player_type_id] => 92
            [type] => Test Name
        )
        

        另一种使用foreach循环的方法:

        foreach($obj2 as $k => $v){
          $obj1->$k = $v;
        }
        
        print_r($obj1);
        

        输出:

        stdClass Object
        (
            [player_id] => 92
            [player_name] => Test Name
            [player_type_id] => 92
            [type] => Test Name
        )
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-04-08
          • 1970-01-01
          • 2020-09-23
          相关资源
          最近更新 更多