0
/**
     * Fetches results from the database with each row keyed according to preference.
     * The 'key' parameter provides the column name with which to key the result.
     * For example, calling fetchAllKeyed('SELECT item_id, title, date FROM table', 'item_id')
     * would result in an array keyed by item_id:
     * [$itemId] => array('item_id' => $itemId, 'title' => $title, 'date' => $date)
     *
     * Note that the specified key must exist in the query result, or it will be ignored.
     *
     * @param string SQL to execute
     * @param string Column with which to key the results array
     * @param mixed Parameters for the SQL
     *
     * @return array
     */
    public function fetchAllKeyed($sql, $key, $bind = array())
    {
        $results = array();
        $i = 0;

        $stmt = $this->_getDb()->query($sql, $bind, Zend_Db::FETCH_ASSOC);
        while ($row = $stmt->fetch())
        {
            $i++;
            $results[(isset($row[$key]) ? $row[$key] : $i)] = $row;
        }

        return $results;
    }

上記のコード スニペットは、xenforo システムから取得したものです。

質問:

この機能に関するコメントはありますが、「キー」パラメータがどのように機能するかをまだ理解していませんか? コメントでは、次のように述べられています。

 * For example, calling fetchAllKeyed('SELECT item_id, title, date FROM table', 'item_id')
 * would result in an array keyed by item_id:
 * [$itemId] => array('item_id' => $itemId, 'title' => $title, 'date' => $date)

so if the table looks like this:
item_id   title     date
1         book      2000
2         car       2000
3         laptop    2001
...

では、どのような結果になるでしょうか。

4

2 に答える 2