search

Home  >  Q&A  >  body text

Use the primary key value of the data as the index of the associative array to obtain the data

After executing the fetch query, I got an array of results:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

[row_choice] => Array

  (

    [0] => Array

      (

        [id] => 277410

        [text_value] => Two Wheel

      )

    [1] => Array

      (

        [id] => 277411

        [text_value] => Three Wheel

      )

    [2] => Array

      (

        [id] => 277412

        [text_value] => Four Wheel

      )

  )

How do I get an array of results like this?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

[row_choice] => Array

  (

    [277410] => Array

      (

        [id] => 277410

        [text_value] => Two Wheel

      )

    [277411] => Array

      (

        [id] => 277411

        [text_value] => Three Wheel

      )

    [277412] => Array

      (

        [id] => 277412

        [text_value] => Four Wheel

      )

  )

What should I do?

My question is

1

SELECT id,text_value FROM answer_choice


王林王林601 days ago8207

reply all(2)I'll reply

  • 大瓶可乐@php.cn

    大瓶可乐@php.cn2023-07-17 10:37:08


    从SQL查询中直接实现这个功能是不可能的,但是你可以检索所有的数据,然后重新映射数组。

    使用PHP 5.5的array_column()函数,你可以做类似以下的操作:


    1

    2

    3

    4

    $myarray['row_choice'] = array_combine(

        array_column($myarray['row_choice'], 'id'),

        $myarray['row_choice']

    );

    对于较早版本的PHP,可以使用array_map()函数来代替。

    1

    2

    3

    4

    5

    6

    7

    8

    9

    $myarray['row_choice'] = array_combine(

        array_map(

            function($value) {

                return $value['id'];

            },

            $myarray['row_choice']

        ),

        $myarray['row_choice']

    );

    你应该按照以下方式创建一个新的数组变量。

    1

    2

    3

    4

    5

    6

    7

    $recArr = array();

     

    while ($records = mysqli_fetch_array($query)) {

        $recArr[$records['id']] = $records;

    }

     

    var_dump($recArr);

    reply
    0
  • coco

    coco2023-08-09 18:49:59

    Hello, Mr. Wang, I very much agree with your skills and hope to have further communication opportunities with you. Can you please add us via WeChat or email?

    reply
    0
  • Cancelreply