【问题标题】:Create an array of inner array values with array function in PHP [duplicate]在PHP中使用数组函数创建一个内部数组值数组[重复]
【发布时间】:2012-04-13 19:26:44
【问题描述】:

可能重复:
How to “flatten” a multi-dimensional array to simple one in PHP?

如何使用数组函数创建内部数组值的数组?

这里是数组

Array
(
    [0] => Array
    (
        [Detail] => Array
        (
            [detail_id] => 1
        )

    )

    [1] => Array
    (
        [Detail] => Array
        (
            [detail_id] => 4
        )

    )

)

我想用上述数组的detail_id 创建一个数组,即

array(1, 4)

在 PHP 中有没有做过数组函数?

【问题讨论】:

  • 我认为所有的数组函数都可以用于一维数组。

标签: php arrays


【解决方案1】:

我正在寻找这样的答案

$result = array_map( function($a) {
    return $a['Detail']['detail_id']; }, $mainArray
);

这是正确的..

【讨论】:

    【解决方案2】:

    如果您正在寻找单班轮:

    $val = array(
       array('Detail' => array('detail_id' => 1)),
       array('Detail' => array('detail_id' => 4)),
     );
    
    var_dump($val);
    

    【讨论】:

      【解决方案3】:

      没有任何一种功能可以单手完成。 array_map 是最接近的,但它并没有真正处理额外的递归级别。为什么不直接使用循环?

      $new_array = array();
      
      foreach($main_array as $key => $second_array)
      {
         foreach($second_array as $second_key => $third_array)
         {
            $new_array[] = $third_array['detail_id'];
         }
      }
      
      echo implode(',',$new_array);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-13
        • 1970-01-01
        • 2015-08-28
        • 1970-01-01
        • 2018-03-27
        相关资源
        最近更新 更多