将多维数组转换为单个数组

2022-08-30 08:53:09

我有一个无缘无故的多维数组

/* This is how my array is currently */
Array
(
[0] => Array
    (
        [0] => Array
            (
                [plan] => basic
            )

        [1] => Array
            (
                [plan] => small
            )

        [2] => Array
            (
                [plan] => novice
            )

        [3] => Array
            (
                [plan] => professional
            )

        [4] => Array
            (
                [plan] => master
            )

        [5] => Array
            (
                [plan] => promo
            )

        [6] => Array
            (
                [plan] => newplan
            )

    )

 )

我想将此数组转换为此表单

/*Now, I want to simply it down to this*/
Array (
[0] => basic
[1] => small
[2] => novice
[3] => professional
[4] => master
[5] => promo
[6] => newplan
)

任何想法如何做到这一点?


答案 1

这一行可以做到这一点:

$array = array_column($array, 'plan');

第一个参数是数组|第二个参数是数组键。

有关详细信息,请转到官方文档:https://www.php.net/manual/en/function.array-column.php


答案 2

假设此数组可能是冗余嵌套的,也可能不是冗余嵌套的,并且您不确定它有多深,这应该会为您扁平化:

function array_flatten($array) { 
  if (!is_array($array)) { 
    return FALSE; 
  } 
  $result = array(); 
  foreach ($array as $key => $value) { 
    if (is_array($value)) { 
      $result = array_merge($result, array_flatten($value)); 
    } 
    else { 
      $result[$key] = $value; 
    } 
  } 
  return $result; 
}