【问题标题】:How to remove array keys 1 level in php [duplicate]如何在php中删除数组键1级[重复]
【发布时间】:2016-01-29 13:03:05
【问题描述】:

我需要删除 1 级嵌套数组键。因为它会导致循环。如果我循环这将需要 2 个 for 循环,但我只需要一个 foreach 循环就足够了。所以我尝试了一些 PHP 数组函数但与此无关。所以我需要答案或建议。

现在我的数组值显示如下。

Array
(
[0] => Array
    (
        [0] => Array
            (
                [post_id] => 1332
                [meta_value] => a:1:{i:0;s:3:"302";}
            )

    )

[1] => Array
    (
        [0] => Array
            (
                [post_id] => 1337
                [meta_value] => a:1:{i:0;s:3:"296";}
            )

        [1] => Array
            (
                [post_id] => 1337
                [meta_value] => a:1:{i:0;s:3:"302";}
            )

    )

)

现在我想要这样。

Array
(
  [0] => Array
         (
              [post_id] => 1332
              [meta_value] => a:1:{i:0;s:3:"302";}
         )

  [1] => Array
         (
              [post_id] => 1337
              [meta_value] => a:1:{i:0;s:3:"296";}
         )

  [2] => Array
         (
             [post_id] => 1337
                [meta_value] => a:1:{i:0;s:3:"302";}
         )
   )

提前致谢

【问题讨论】:

  • 好吧,您仍然需要将这些值附加到其他数组。首先有 2 个不同的数组需要合并。所以结构发生了变化。您可能无法避开额外的 for 循环和 foreach 子句。
  • 第一个猜测 - 在第一个 foreach ($arr as $key => $val) 中使用 array_pop($val) 应该可以。
  • 如果没有额外的维度,那么$whatYouWant = call_user_func_array('array_merge', $yourArray);

标签: php arrays


【解决方案1】:

试试这个:

function array_unchank($array) {
    if (empty($array)) {
        return array();
    }
    return call_user_func_array('array_merge', $array);
}

使用:print_r(array_unchank($array) );

【讨论】:

    【解决方案2】:

    请检查下面的代码希望这对你有帮助

    $input = array(
    array
    (
        array
            (
                'post_id' => 1332,
                'meta_value' => 'a:1:{i:0;s:3:"302";}'
            )
    
    ),
    array
    (
        array
            (
                'post_id'  => 1337,
                'meta_value'=> 'a:1:{i:0;s:3:"296";}'
            ),
            array
            (
                'post_id' => 1337,
                'meta_value'=> 'a:1:{i:0;s:3:"302";}'
            )
    
    )
    );
    
    $result = call_user_func_array("array_merge", $input);
    
    var_export($result);
    

    【讨论】:

      猜你喜欢
      • 2018-01-18
      • 1970-01-01
      • 2016-04-18
      • 1970-01-01
      • 2022-12-03
      • 1970-01-01
      • 2017-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多