dqve65954 2010-11-09 01:36
浏览 18
已采纳

如何在PHP中减少数组的内部数组值?

if I have the array like that:

array(
   array('id'=>123,'name'=>"Ele1"),
   array('id'=>12233,'name'=>"Ele2"),
   array('id'=>1003,'name'=>"Ele4"),
   array('id'=>1233,'name'=>"Ele5")
)

That's the data I get and I want to effeciently remove 2nd value of every inner array. (e.g. "Ele1", "Ele2". .... )

here is what I do:

$numEle = count($arrayA);
$_arrayB = array();
for ($i=0; $i<$numEle ; $i++)
{
 array_push($_arrayB ,  $arrayA[$i]['id']); 
}

Instead of have a for loop to read and assign the value to a new array. What is the best way to do it? any php build-in function I should use?

like array_map?

I currently do that:


Thanks all for the answer. They all work. :)

  • 写回答

3条回答 默认 最新

  • dongshang5862 2010-11-09 08:20
    关注

    When you're using PHP 5.3 the solution can be quite elegant:

    $b = array_map(function($item) { return $item['id']; }, $arrayA);
    

    On PHP < 5.3 you would have to create a callback function

    function mapCallback($item) {
        return $item['id'];
    }
    $b = array_map('mapCallback', $arrayA);
    

    or use create_function() to create a dynamic callback function (I won't show this, because it actually hurts my eyes ;-))

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 公交车和无人机协同运输
  • ¥15 stm32代码移植没反应
  • ¥15 matlab基于pde算法图像修复,为什么只能对示例图像有效
  • ¥100 连续两帧图像高速减法
  • ¥15 组策略中的计算机配置策略无法下发
  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)