PHP - 在多维数组中取消设置

Gie*_*iel 12 php multidimensional-array unset

我有这个数组$输出,看起来像这样:

Array(
    [0] => Array(
        [0] => 1a
        [1] => 1b
        [2] => 1c
    )
    [1] => Array(
        [0] => 2a
        [1] => 2b
        [2] => 2c
    )
    [2] => Array(
        [0] => 3a
        [1] => 3b
        [2] => 3c
    )
    [3] => Array(
        [0] => 4a
        [1] => 4b
        [2] => 4c
    )
)
Run Code Online (Sandbox Code Playgroud)

等等...

当我想删除我刚刚使用的第二个元素时

$output = unset($output[1]);
Run Code Online (Sandbox Code Playgroud)

获得以下内容:

Array(
    [0] => Array(
        [0] => 1a
        [1] => 1b
        [2] => 1c
    )
    [1] => Array(
        [0] => 3a
        [1] => 3b
        [2] => 3c
    )
    [2] => Array(
        [0] => 4a
        [1] => 4b
        [2] => 4c
    )
)
Run Code Online (Sandbox Code Playgroud)

我的问题是如何删除数组中每个元素的每个第二个元素([0] [1],[1] [1],[2] [1],[3] [1],...)得到下列:

Array(
    [0] => Array(
        [0] => 1a
        [1] => 1c
    )
    [1] => Array(
        [0] => 2a
        [1] => 2c
    )
    [2] => Array(
        [0] => 3a
        [1] => 3c
    )
    [3] => Array(
        [0] => 4a
        [1] => 4c
    )
)
Run Code Online (Sandbox Code Playgroud)

Mar*_*c B 18

无法使用简单的命令完成,但您可以使用循环:

foreach(array_keys($output) as $key) {
   unset($output[$key][1]);
}
Run Code Online (Sandbox Code Playgroud)


Arn*_*anc 8

您可以迭代数组,以及unset()每个子数组中想要的内容:

foreach($output as &$item) {
    unset($item[2]);
}
unset($item); // unset reference
Run Code Online (Sandbox Code Playgroud)


dna*_*irl 5

干净整洁:

$f=function(&$a,$k) { unset $a[1]; };
array_walk($arr,$f);
Run Code Online (Sandbox Code Playgroud)