在執行獲取查詢後,我得到了一個結果數組:
[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
大瓶可乐@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);