如何切片阵列多维?

时间:2017-05-24 10:37:08

标签: php arrays multidimensional-array

我的输出数组如下:

dt.Columns.Add("ColumnB");
dt.Columns.Add("ColumnA");

我只想删除数组中除3元素以外的所有元素,我希望索引不重置。 我尝试过使用数组切片,但仍然失败了。 感谢..

我希望得到这样的输出

Array
(
    [0] => Array
        (
            [3] => 0.24022657034509
            [0] => 0.31039543711844
            [2] => 0.6270142808618
            [1] => 0.75379703175047
        )

    [1] => Array
        (
            [1] => 0.056067176666841
            [0] => 0.57560961693454
            [3] => 0.72174392391777
            [2] => 0.76119762242023
        )
    )

**这是我的代码**

Array
(
    [0] => Array
        (
            [3] => 0.24022657034509
            [0] => 0.31039543711844
            [2] => 0.6270142808618

        )

    [1] => Array
        (
            [1] => 0.056067176666841
            [0] => 0.57560961693454
            [3] => 0.72174392391777

        )
    )

1 个答案:

答案 0 :(得分:1)

要获得数组的第一个元素array_slice

$arr = [
    [
        3 => 1,
        0 => 2,
        4 => 4,
        1 => 5,
        2 => 8,
    ],
    [
        2 => 1,
        1 => 4,
        0 => 7,
        3 => 9,
        4 => 11,
    ],
];
$new_array = [];  // new array
foreach ($arr as $item) {
    $new_array[] = array_slice($item, 0, 3);   // 3 is a size of new subarray
    // or with preserving keys:
    $new_array[] = array_slice($item, 0, 3, true);   // 3 is a size of new subarray
}