recherche

Maison  >  Questions et réponses  >  le corps du texte

Utilisez la valeur de clé primaire des données comme index du tableau associatif pour obtenir les données

Après avoir exécuté la requête de récupération, j'ai obtenu un tableau de résultats :

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

Comment puis-je obtenir un tableau de résultats comme celui-ci ?

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

Que dois-je faire ?

Ma question est

SELECT id,text_value FROM answer_choice


王林王林566 Il y a quelques jours8147

répondre à tous(2)je répondrai

  • 大瓶可乐@php.cn

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


    从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);

    répondre
    0
  • coco

    coco2023-08-09 18:49:59

    Bonjour, Professeur Wang, je suis tout à fait d'accord avec vos compétences et j'espère avoir d'autres opportunités de communication avec vous. Pouvez-vous s'il vous plaît nous ajouter via WeChat ou par e-mail

    .

    répondre
    0
  • Annulerrépondre