阵列未正确分配数据库中的ID

时间:2018-07-19 15:39:05

标签: php mysql sql arrays

我目前有一条选择语句,该语句建立一个数组并被循环获取值。它返回正确的值,但未分配正确的分配。

因此,我将位置视为数组键,这很正常,但是例如在下面的数组中,Office 1应该有一个ID 1Room 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值。

我到底在做什么错?

1 个答案:

答案 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'];
}