使用PHP和MySQL创建多维数组

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了使用PHP和MySQL创建多维数组脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我是 PHP的新手,正在寻找从数据库返回数据的有效方法.假设我有一个UserProfile表,它与UserInterest和UserContact有一对多的关系:

Select p.Id,p.FirstName,p.LastName,i.Name as Interests,c.Email,c.Phone
from UserProfile p
left join UserInterest i on p.Id = i.UserProfileId
left join UserContact c on p.Id = c.UserProfileId
where p.Id = 1

检索数据的有效方法是创建多维数组,例如:

$user = array(  "FirstName" => "John","LastName" => "Doe","Gender" => "Male","Interests" => array(
                    "Hiking","Cooking"),"Contact" => array(
                    "Email" => "john.doe@gmail.com","Phone" => "(555) 555-5555"));

我似乎无法理解如何在PHP中构建它.对于像兴趣这样的简单数据,我可以在查询中使用group_concat(i.Name)作为Interests将兴趣作为逗号分隔的列表返回到单行中,但是,对于像Contact这样的关联数组,我希望能够使用$user [‘Contact’] [‘Email’]获取数组中每个键的句柄.

从“最佳实践”的角度来看,我认为在一个查询中构建这样的数组要比多次访问数据库以检索这些数据要好得多.

谢谢!

尼尔

解决方法

您可以通过查询返回的数据一次构造此数组.在伪代码中:

for each row
     $user["FirstName"] = row->FirstName;
     $user["LastName"] = row->LastName;
     $user["Interests"][] = row->Interests;
     $user["Contact"]["Email"] = row->Email;
     $user["Contact"]["Phone"] = row->Phone;
next

语法$user [“Interests”] [] = $data是有效的PHP代码.它相当于array_push($user [“Interests”],$data).

脚本宝典总结

以上是脚本宝典为你收集整理的使用PHP和MySQL创建多维数组全部内容,希望文章能够帮你解决使用PHP和MySQL创建多维数组所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: