首页 > 解决方案 > 数组、数组和对象

问题描述

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

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 的对象)

标签: phparraysobject

解决方案


如果这真的只是将这些条目合并到一个数组中,那么该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
        )
)

推荐阅读