php循环数组返回总是第一个元素

时间:2013-10-05 08:49:38

标签: php arrays loops

简单的问题,但我找不到解决方案。

我有一个数组:

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解决方案相同。但我无法找到它或记住它。

* 该功能的名称是什么? *

2 个答案:

答案 0 :(得分:2)

您可以使用array_maparray_walk

array_map

的示例
<?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];

整个数组迭代完毕后返回新数组。