0

我有一个 MySQLSELECT查询(使用wpdb_custom->get_results()),它返回两UNSIGNED TINYINTCol_1Col_2任意数量的行。在给定值为 的情况下,在 PHP 中Col_2记录集中查找 的值的成本最低的方法是Col_1什么?

Emp_ID  Col_1    Col_2
120         3       11
120         5       17
120         6        8
120         8       13
120        11       10

例如,伪代码查找函数lookup(6, $recordset)将产生8.

4

2 回答 2

0

取决于你打算做什么,更重要的是多久做一次。

您可以在同一张表上使用 MySQL-JOIN 来完成。或者您创建一个哈希并比较数据集。或者你使用 array_search()。

于 2012-04-12T12:19:12.280 回答
0

假设您的数组记录集看起来像这样:

Array
(
    [0] => Array
        (
            [Emp_ID] => 120
            [Col_1] => 3
            [Col_2] => 11
        )

    [1] => Array
        (
            [Emp_ID] => 120
            [Col_1] => 5
            [Col_2] => 17
        )

    [2] => Array
        (
            [Emp_ID] => 120
            [Col_1] => 6
            [Col_2] => 8
        )
    ....
)

现在为每页创建一次搜索数组。

$search_array =array();
foreach( $recordSet as $key=>$data ){

        $search_array[$data['Col_1']]=$data['Col_2'];   
}

然后每次您需要从 Col_1 中找到 Col_2 的值时,只需使用:

echo $search_array[6]; // will return 8

对于使用相同搜索数组的其他方式,请使用 array_search()

echo  array_search("8",$search_array); // will return 6
于 2012-04-12T13:58:44.450 回答