PHP实现从MySQL获取指定格式二维数组的方法
实现MySQL查询结果转指定格式数组
问题情况
现有PHP代码从MySQL数据库查询数据,当前生成的数组格式不符合需求:
当前代码
$sql = "SELECT * FROM nat WHERE village = '$village'"; $result = $conn->query($sql); $prname1=array(); while($row = $result->fetch_array()) { $prname1[]=$row['id_source']; }
当前输出
调用print_r($prname1)得到:
Array ( [0] => 30000 [1] => 30002 [2] => 30003 )
目标格式
需要生成如下结构的数组:
[ [0 => 30000], [0 => 30002], [0 => 30003], ]
解决方案
只需修改循环内的赋值逻辑,把每个id_source的值包装成以0为键的子数组,再推入目标数组即可。修改后的代码:
$sql = "SELECT * FROM nat WHERE village = '$village'"; $result = $conn->query($sql); $prname1=array(); while($row = $result->fetch_array()) { // 将每个值封装为带0键的子数组后加入目标数组 $prname1[] = [0 => $row['id_source']]; }
验证结果
调用print_r($prname1)会得到符合要求的结构:
Array ( [0] => Array ( [0] => 30000 ) [1] => Array ( [0] => 30002 ) [2] => Array ( [0] => 30003 ) )
如果需要输出成字符串形式的方括号格式,可使用json_encode($prname1),输出结果为:
[[30000],[30002],[30003]]
注:JSON格式会省略默认的0索引键,但结构与需求等价。若必须显式输出0 => xxx的格式,可手动循环拼接字符串。
内容的提问来源于stack exchange,提问作者viyrag
相关产品推荐
相关产品推荐

