简单的问题,但我找不到解决方案。
我有一个数组:
array
0 =>
array
1 => string '25' (length=2)
1 =>
array
1 => string '27' (length=2)
我需要得到:
array
0 => string '25' (length=2)
1 => string '27' (length=2)
是的,如果当然可以做到:
foreach($result as $each) {
$resultIds[]=$each[1];
}
但我很确定我在本周的某个地方看到了类似......的功能。
array_something('current',$result);
什么将循环遍历数组作为foreach并返回第一个元素,因此结果将与foreach解决方案相同。但我无法找到它或记住它。
* 该功能的名称是什么? *
答案 0 :(得分:2)
您可以使用array_map
或array_walk
<?php
function first($n)
{
return $n[1];
}
$arr = array(
array(1, 2, 4),
array(1, 2, 3,),
);
var_export($arr);
// call internal function
$arr = array_map('current', $arr);
var_export($arr);
// call user function
$arr = array_map('first', $arr);
答案 1 :(得分:0)
请阅读手册here
$resultIds = array_map(function($arrEle) {
return $arrEle[0];
}, $result);
array_map接受一个函数,该函数依次传递数组的每个元素,并为每个数组元素调用它。
然后函数需要在新数组中返回任何你想要的东西,在这种情况下你需要子数组的第二个元素,所以我们返回$arrEle[1]
;
整个数组迭代完毕后返回新数组。