将数据的主键值作为关联数组的索引来获取数据
王林
王林 2023-07-16 17:41:35
0
2
8015

在执行获取查询后,我得到了一个结果数组:

[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
      )
  )

我如何获得这样的结果数组?

[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
      )
  )

我应该怎么做?

我的问题是

SELECT id,text_value FROM answer_choice


王林
王林

有朋自远方来,虽远必诛!

全部回复(2)
大瓶可乐@php.cn


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

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


$myarray['row_choice'] = array_combine(
    array_column($myarray['row_choice'], 'id'),
    $myarray['row_choice']
);

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

$myarray['row_choice'] = array_combine(
    array_map(
        function($value) {
            return $value['id'];
        },
        $myarray['row_choice']
    ),
    $myarray['row_choice']
);

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

$recArr = array();

while ($records = mysqli_fetch_array($query)) {
    $recArr[$records['id']] = $records;
}

var_dump($recArr);
P粉804184459

王老师你好,对你的技术非常认同,很希望和你有进一步的交流机会,方便加个微信或邮件吗

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!