我目前有一条选择语句,该语句建立一个数组并被循环获取值。它返回正确的值,但未分配正确的分配。
因此,我将位置视为数组键,这很正常,但是例如在下面的数组中,Office 1
应该有一个ID 1
和Room Main
和{ {1}}分配给ID 2
,但是Room Extra
位于显示名称之外的数组中。
我的查询:
display_id
我的代码:
SELECT l.id , location_name, d.id as display_id, display_name, location_id
FROM locations l
inner join displays d
ON d.location_id = l.id;";
这当前转储了这个数组:
$displayResult = $mysqlConn->query($getDisplays);
$displayNames = array();
foreach($displayResult as $subArray) {
if(!array_key_exists($subArray['location_name'], $displayNames)) {
$displayNames[$subArray['location_name']] = array();
}
$displayNames[] = $subArray['display_id'];
$displayNames[$subArray['location_name']][] = $subArray['display_name'];
}
我只需要将display_id分配给display_name,因为我正在为每个display_name建立链接,因此我试图将display_id保存为每个URL的URL值。
我到底在做什么错?
答案 0 :(得分:1)
我想您的正确循环应该是:
foreach($displayResult as $subArray) {
if(!array_key_exists($subArray['location_name'], $displayNames)) {
$displayNames[$subArray['location_name']] = array();
}
// here you add `display_name` under key `display_id`
$displayNames[$subArray['location_name']][$subArray['display_id']] = $subArray['display_name'];
}