dpps0715 2013-12-12 09:22
浏览 38
已采纳

当我有一个数组的唯一值时,如何从关联数组中获取数组的其他元素[关闭]

Array
(
    [0] => Array
        (
            [id] => 61
            [title] => werwer
        )

    [1] => Array
        (
            [id] => 63
            [title] => test
        )

    [2] => Array
        (
            [id] => 88
            [title] => test 2
        )
)

How can I get title which has id=63 in above type of array without looping.

  • 写回答

3条回答 默认 最新

  • dongqiao1151 2013-12-12 09:29
    关注

    Actually, you can't do that without looping. That doesn't mean you have to use loop (foreach/while e t.c.) - but using array functions you will internally iterate array in any case.

    For example, in PHP 5.5 that is:

    $array = [
    ['id'=>63, 'title'=>'foo'],
    ['id'=>65, 'title'=>'bar']
    ];
    //use this - if there are more than 2 connected to `id` fields:
    $ids    = array_flip(array_column($array, 'id'));//here is iteration, gathering id column
    $result = $array[$ids[63]]['title'];
    //or else, if `title` is always the only field:
    $result = array_column($array, 'title', 'id')[63];
    //var_dump($result);
    

    -and so on. array_search() with array_walk() (or similar ways) will hide iteration from you, but it will be done in any case.

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

报告相同问题?

悬赏问题

  • ¥15 bywave配置文件写入失败
  • ¥20 基于Simulink的ZPW2000轨道电路仿真
  • ¥15 pycharm找不到在环境装好的opencv-python
  • ¥15 在不同的执行界面调用同一个页面
  • ¥20 基于51单片机的数字频率计
  • ¥50 M3T长焦相机如何标定以及正射影像拼接问题
  • ¥15 keepalived的虚拟VIP地址 ping -s 发包测试,只能通过1472字节以下的数据包(相关搜索:静态路由)
  • ¥20 关于#stm32#的问题:STM32串口发送问题,偶校验(even),发送5A 41 FB 20.烧录程序后发现串口助手读到的是5A 41 7B A0
  • ¥15 Mabatis查询数据
  • ¥15 想知道lingo目标函数中求和公式上标是变量情况如何求解