Php 从2d数组中删除某些索引
我有这样一个数组:Php 从2d数组中删除某些索引,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我有这样一个数组: Array ( [0] => Array ( [0] => 1 [1] => Firstname one [2] => Lastname one ) [1] => Array ( [0] => 2 [1] => Firstname two
Array
(
[0] => Array
(
[0] => 1
[1] => Firstname one
[2] => Lastname one
)
[1] => Array
(
[0] => 2
[1] => Firstname two
[2] => Lastname two
)
[2] => Array
(
[0] => 3
[1] => Firstname three
[2] => Lastname three
)
)
现在,我想删除整个
索引1
,即数组中的所有firstname。我计划使用array\u splice
,方法是在整个数组中循环并删除其索引1。但是有更好的办法吗。(我希望在删除元素后重新建立索引。)您也可以使用数组\u切片
函数,如
foreach($array as $k=>$v)
{
array_splice($v, 1,1);
$array[$k] = $v;
}
输出:
Array
(
[0] => Array
(
[0] => 1
[1] => Lastname one
)
[1] => Array
(
[0] => 1
[1] => Lastname two
)
[2] => Array
(
[0] => 1
[1] => Lastname three
)
)
你应该使用
如果你想重新索引它,我也会使用
array\u-splice()
。你的方法工作正常,但会发出警告:array\u-splice()希望参数1是array,boolean-given
我会得到这种类型的警告,并且确保你将“$v”作为array\u-splice()中的第一个参数传递给array您通过$k
索引进行迭代,但总是取消设置$i
,它甚至不递增。这将不起作用。您可以使用$k而不是$i。仍然需要实现一些逻辑以获得所需的输出。
Array
(
[0] => Array
(
[0] => 1
[1] => Lastname one
)
[1] => Array
(
[0] => 1
[1] => Lastname two
)
[2] => Array
(
[0] => 1
[1] => Lastname three
)
)
foreach($array as $k=>$v)
{
unset($array[$k][1]); /// Chnage the key of array which you want to remove
}
$input_array = [[1,'Firstname one','Lastname one'],
[2,'Firstname two','Lastname two'],
[3,'Firstname three','Lastname three']];
$resultArray = array_map(function($record) {
return [$record[0], $record[2]]; // add your desired records
}, $input_array);
echo '<pre>'; print_r($resultArray);
Array
(
[0] => Array
(
[0] => 1
[1] => Lastname one
)
[1] => Array
(
[0] => 2
[1] => Lastname two
)
[2] => Array
(
[0] => 3
[1] => Lastname three
)
)