如何在PHP中从2D数组或多数组创建一维数组?

时间:2017-01-12 06:46:42

标签: php arrays multidimensional-array

我有一个看起来像这样的数组

Array
(
[0] => Array
    (
        [0] => RANO17
        [1] => RANO99
    )

[1] => Array
    (
        [0] => Test Product Ranosys
        [1] => Rano test example
    )

[2] => Array
    (
        [0] => 7
        [1] => 2
    )

[3] => Array
    (
        [0] => 
        [1] => 
    )

[4] => Array
    (
        [0] => 200.0000
        [1] => 100.0000
    )

[5] => Array
    (
        [0] => 
        [1] => 
    )

[6] => Array
    (
        [0] => 1400
        [1] => 200
    )

)

我想从上面的数组制作一维数组。 1D阵列看起来像。

Array(
[0] => Array
(
  [0] => RANO17
  [1] => Test Product Ranosys
  [2] => 7
  [3] => 
  [4] => 200.0000
  [5] => 
  [6] => 1400
)

[1] =>Array 
(
  [0] => RANO99
  [1] => Rano test example
  [2] => 2
  [3] => 
  [4] => 100.0000
  [5] => 
  [6] => 200
)
)

我不知道我们怎么能这样做我在谷歌搜索过去两个小时但是还没有得到任何解决方案。我们如何使用某些数组函数或任何编程逻辑来帮助我们。

3 个答案:

答案 0 :(得分:3)

$newArr1 = array();
$newArr2 = array();

foreach ( $arr AS $element ) {
  $newArr1[] = $element[ 0 ];
  $newArr2[] = $element[ 1 ];
}

答案 1 :(得分:1)

我自己解决了。如果多阵列具有动态值,它将起作用。 $ orders_rows的输出

Array
(
  [0] => Array
  (
    [0] => RANO17
    [1] => RANO99
  )

 [1] => Array
 (
    [0] => Test Product Ranosys
    [1] => Rano test example
 )

 [2] => Array
 (
    [0] => 7
    [1] => 2
 )

 [3] => Array
 (
    [0] => 
    [1] => 
 )

 [4] => Array
 (
    [0] => 200.0000
    [1] => 100.0000
 )

 [5] => Array
 (
    [0] => 
    [1] => 
 )

 [6] => Array
 (
    [0] => 1400
    [1] => 200
 )

)

有解决我问题的代码

foreach ($orders_rows as $singlerows) {
        for ($k = 0; $k < count($singlerows[0]); $k++) {
            for ($i = 0; $i < count($singlerows); $i++) {
                $output_array[] = $singlerows[$i][$k];
            }
        }
    }
    $orders_row = array_chunk($output_array, 7);

$ orders_row的输出

Array
(
  [0] => RANO17
  [1] => Test Product Ranosys
  [2] => 7
  [3] => 
  [4] => 200.0000
  [5] => 
  [6] => 1400
)
Array
(
  [0] => RANO99
  [1] => Rano test example
  [2] => 2
  [3] => 
  [4] => 100.0000
  [5] => 
  [6] => 200
)

答案 2 :(得分:0)

遍历数组并将每个数组的元素转储到单独的数组中。

$myArray = array (array(1, "testing 1"), array(2, "testing 2"), array(3, "testing 3"));

$arrayOne = array();
$arrayTwo = array();

对于主数组的每个元素,将子数组的两个元素回显到它们自己的单独数组中。

foreach ($myArray as $a) {
    $arrayOne[] = $a[0];
    $arrayTwo[] = $a[1];
}

打印结果

print_r($arrayOne);
echo "\n\n";
print_r($arrayTwo);

结果:

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
)


Array
(
    [0] => testing 1
    [1] => testing 2
    [2] => testing 3
)