2

我正在尝试将数据从表中获取到数组中,并且我想使用 foreach 循环而不是一段时间来解决速度问题。

我尝试使用

function getRowsAssoc()
{
    $ret = array();
    while (($temp = mysql_fetch_assoc($this->result)) !== FALSE)
    {
        if (count($temp) > 0)
        {
            $ret[] = $temp;
        }
    }
    if (count($ret) > 0)
    {
        return $ret;
    }
    else
    {
        return FALSE;
    }
}

然而,这导致。

Array (
    [0] => Array ( [MySKU] => BB1-3500-48 [UPC] => 721343100171 ) 
    [1] => Array ( [MySKU] => BC7-3501-19 [UPC] => 721343103516 )
    [2] => Array ( [MySKU] => BC7-3501-95 [UPC] => 721343103523 ) 
    [3] => Array ( [MySKU] => BB1-3502-12 [UPC] => 721343114000 )
    [4] => Array ( [MySKU] => bc7-2370-03 [UPC] => 721343121602 )
)

这样做的问题是,它不是返回一个 Assoc 数组,而是在其顶部添加一个编号数组,所以现在我无法从项目代码中获取数据。

我想变成这样

Array (
         [MySKU] => BB1-3500-48 [UPC] => 721343100171 
         [MySKU] => BC7-3501-19 [UPC] => 721343103516 
        [MySKU] => BC7-3501-95 [UPC] => 721343103523  
        [MySKU] => BB1-3502-12 [UPC] => 721343114000 
        [MySKU] => bc7-2370-03 [UPC] => 721343121602 
    )
4

2 回答 2

1

指定密钥:

function getRowsAssoc()
{
    $ret = array();
    while (($temp = mysql_fetch_assoc($this->result)) !== FALSE)
    {
        if (count($temp) > 0)
        {
            $ret[$temp["MySKU"]] = $temp;
        }
    }
    if (count($ret) > 0)
    {
        return $ret;
    }
    else
    {
        return FALSE;
    }
}
于 2013-05-09T13:52:39.323 回答
0

首先你应该知道结果数组的结构应该是什么样子。

对于像这样的结构

Array
(
    [MySKU-x] => UPC-x
    [MySKU-y] => UPC-y
    [MySKU-z] => UPC-z
)

你可以使用这个:

function getRowsAssoc()
{
    $return = array();
    while (($temp = mysql_fetch_assoc($this->result)) !== false)
    {
        if (count($temp) > 0)
        {
            $return[$temp['MySKU']] = $temp['UPC'];
        }
    }
    if (count($return) > 0)
    {
        return $return;
    }
    else
    {
        return false;
    }
}
于 2013-05-09T14:16:53.873 回答