Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中从2D数组或多数组创建1D数组?_Php_Arrays_Multidimensional Array - Fatal编程技术网

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

如何在PHP中从2D数组或多数组创建1D数组?,php,arrays,multidimensional-array,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

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

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
)
)

我不知道该怎么做,我在谷歌上搜索了两个小时,但还没有找到任何解决方案。我们如何使用一些数组函数或任何编程逻辑来实现这一点请提供帮助。

在数组中循环,并将每个数组的元素转储到单独的数组中

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

foreach ( $arr AS $element ) {
  $newArr1[] = $element[ 0 ];
  $newArr2[] = $element[ 1 ];
}
$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
)

我自己解决了。如果multiarray具有动态值,它将起作用。 美元订单的输出\u行

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);

到目前为止,你试过什么吗?如果没有,请调查或分析。没有任何现成的函数可以完全满足您的需要。是的,我可以,但我只得到一个数组。数组([0]=>RANO17[1]=>TestProduct Ranosys[2]=>7[3]=>4]=>200.0000[5]=>6]=>1400)这是1d数组还是两个1d数组?它是1d数组@vForVendettay您的第二个代码块不会按照您的想法执行
$newArr[$i]
始终只包含
$element[1]
。感谢您的帮助@Ben,但如果我在多数组中有动态值,解决方案是什么?@Ramkishan-您需要在问题中指定这些内容。使用示例数据时,第一个代码块执行您想要的操作。如果它看起来可能不同,则需要指定其方式。不要移动门柱。抱歉@MagnusEriksson一分钟后我更新了question@Ramkishan-你应该向那些因回答你不准确的问题而浪费时间的人道歉。你应该保持这个问题的原样,标记一个答案,然后写一个包含所有细节的新问题。
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
)