search

Home  >  Q&A  >  body text

对Thinkphp select的数据集的键改成表里的ID

Thinkphp select后的数组是一个二维数组,键是从0开始排序的,数组里面是带有ID,现在我要查出来的结果是,一个二维数组,键是数据的ID.

有什么办法呢?

PHP中文网PHP中文网2822 days ago308

reply all(2)I'll reply

  • PHP中文网

    PHP中文网2017-04-10 17:06:52

    复制一个数组不行吗

    <?php
        $arr = [
            [
                'id' => 1,
                'name' => "Bob",
                'sex' => "男",
            ],
            [
                'id' => 2,
                'name' => "Frank",
                'sex' => "男",
            ],
        ];
        $arr2 = [];
        for ($i=0; $i < count($arr); $i++) { 
            $arr2[$arr[$i]['id']] = $arr[$i];
            unset($arr2[$arr[$i]['id']]['id']);
        }
        var_dump($arr2);

    reply
    0
  • 怪我咯

    怪我咯2017-04-10 17:06:52

    使用thinkphp的getField()方法查询。
    getField方法不只是用来查询个别字段的值,还可以用来指定查询结果的数组索引。
    如果传入了2个以上的字段名,则返回一个二维数组(类似select方法的返回值,区别在于索引是二维数组的键名是第一个字段的值),例如:

    $result = $User->where('status=1')->getField('id,account,nickname');

    获得的数组就是以id(第一个字段)为数组键,id,account,nickname字段数据为值组成的数组。
    只填入2个字段则得到的键值对。

    详细:getField用法总结

    reply
    0
  • Cancelreply