查询数组类似于SQL查询-PHP

查询数组类似于SQL查询-PHP,php,arrays,sql-server,Php,Arrays,Sql Server,我正在尝试编写一个快速脚本,只查询一次MSSQL表,然后在我的端组织响应,这样我就不必一直查询mysql中的数据 很难解释,但我想到的是在一个查询中获取我需要的所有内容,然后将每一行组织成一个数组,然后将该数组放入另一个我可以从中提取数据的全包数组 到目前为止,我得到的是: $allInclusiveArray = []; $sumRecords = mssql_num_rows($result); for ($i = 0; $i < $sumRecords; ++$i) { //

我正在尝试编写一个快速脚本,只查询一次MSSQL表,然后在我的端组织响应,这样我就不必一直查询mysql中的数据

很难解释,但我想到的是在一个查询中获取我需要的所有内容,然后将每一行组织成一个数组,然后将该数组放入另一个我可以从中提取数据的全包数组

到目前为止,我得到的是:

$allInclusiveArray = [];
$sumRecords = mssql_num_rows($result);
for ($i = 0; $i < $sumRecords; ++$i) {
    //get key values for array
    echo $value1= mssql_result($result, $i, 'key1');
    echo $value2= mssql_result($result, $i, 'key2');
    echo $value3= mssql_result($result, $i, 'key3');
    echo $value4= mssql_result($result, $i, 'key4');

    $tempArray = [
        "key1" => $value1,
        "key2" => $value2,
        "key3" => $value3,
        "key4" => $value4
    ];

    array_push($allInclusiveArray, $tempArray);
}
我想知道的是,是否有一种方法可以查询这个数组来获取与一个键相关的所有值,而另一个键有一个固定值。在mssql中,它看起来像是
从表中选择key1,其中key2=value2

一种可能是执行for循环,然后运行and if语句检查键和值是否匹配,例如:

for (i in length of array) {
    if (the array located at i has key2 equaling value2) {
        select the value of key1 from the array at this index
    }
}

编辑:我最终在MSSQL方面完成了大部分排序。我有一个正在运行的PHP脚本,可以对批量数据进行排序,但即使处理20000条记录也要花很长时间。

像这样

下面是一个例子:

如果你需要更多的功能,这可以很容易地扩展到一个完整的类。

是我昨天写的一篇关于这个主题的博文(/rant)

底线是
原则
具有类似于
SQL
语义的可查询
ArrayCollections
标准
类似于ORM查询生成器)

这方面的资源是有限的。如果使用composer,则可以要求项目中的库直接使用它


它通常与ORM或ODM结合使用,以过滤(部分加载)大型关系(这就是所呈现的关系)。

您可以在
for (i in length of array) {
    if (the array located at i has key2 equaling value2) {
        select the value of key1 from the array at this index
    }
}
function arrayQuery($array, $key, $match){
    foreach($array as $row){
        if(array_key_exists($key, $row) && $row[$key] == $match) return $row;
    }
    return $false;
}