【问题标题】:Array, array, and objects [closed]数组、数组和对象 [关闭]
【发布时间】:2020-11-12 20:58:29
【问题描述】:

我在变量中得到了这个结果

array(2){

  [0]=>
  array(1) {
    [0]=>
    object(stdClass)#1280 (23) 
    {
      ["num_id"]=>
      string(5) "73982"
    }
           }

  [1]=>
  array(2){
    [0]=>
    object(stdClass)#1281 (23) 
    {
      ["num_id"]=>
    string(5) "74216"
    }

  [1]=>
    object(stdClass)#1281 (23)
    {
      ["num_id"]=>
    string(5) "74216"
    }
        
        }
          } 

我需要的都是一个数组,这可能吗? 类似 ARRAY(数组 1 的对象和数组 2 的对象)

【问题讨论】:

    标签: php arrays object


    【解决方案1】:

    如果这真的只是将这些条目合并到一个数组中,那么array_merge(...) 函数就派上用场了...

    但是,如果您需要更多控制,可能想要即时进行一些清理,那么只需遍历条目即可:

    <?php
    $input = [
      [ (object) ["num_id" => "73982" ] ],
      [ (object) ["num_id" => "74216" ] ],
      [ (object) ["num_id" => "74212" ] ]
    ];      
    
    $output = [];
    array_walk($input, function($entry) use(&$output) {
      $output[] = array_values($entry)[0];
    });
    
    print_r($output);
    

    输出显然是:

    Array
    (
        [0] => stdClass Object
            (
                [num_id] => 73982
            )
        [1] => stdClass Object
            (
                [num_id] => 74216
            )
        [2] => stdClass Object
            (
                [num_id] => 74212
            )
    )
    

    【讨论】:

      【解决方案2】:

      假设你的数组被命名为$a:

      $my_arranged_array = array_merge($a[0], ...$a[1]);
      

      这将为您提供一个包含对象的普通数组:[object1, object2, object3]

      【讨论】:

        【解决方案3】:

        您需要创建一个新的标准类,例如:

        $array_total = [];
        foreach($bags as $bag){
           $items = $bag['items'];
           $array_bag = [];
           foreach($items as $item){
               $object =  new stdClass();
               $object->num_id = $item['number'];
               array_push($array_bag,$object);
               unset($object);
           }
               array_push($array_total,$array_bag);
        }
        

        【讨论】:

          【解决方案4】:

          请尝试内置函数array_merge()

          【讨论】:

          • 请给出一个实际的例子,但只是一个php参考的链接。
          • 当然;我不时使用 Php 大约 15 年,但仍然不记得哪个参数是函数 in_array() 中的第一个参数。每次我试图猜测或谷歌它。但是......真的......我无法想象自我描述的函数array_merge的第二种可能用法...... $resultArray = array_merge($array,$anotheArrayToMerge)。我希望它有所帮助;)
          • 这不是第一条评论所要求的。答案不应仅包含指向 SO 上的外部参考的链接。这是清楚地记录在案的。您应该提供一个您自己编写的示例代码来演示用法。您的答案中缺少这一点。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-07-13
          • 2020-10-15
          • 2021-04-06
          • 2021-07-19
          • 1970-01-01
          相关资源
          最近更新 更多