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