Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php查询数组_Php_Sql - Fatal编程技术网

php查询数组

php查询数组,php,sql,Php,Sql,我有这样一个数组: $array=[ 0 => [col_a => 1, col_b => 2, col_c =>3], 1 => [col_a => 2, col_b => 3, col_c =>4] ]; 有没有一种方法可以做到: $result=query_array($array,"SELECT col_c FROM ARRAY WHERE col_a=2 AND col_b=3"); print_r($result);

我有这样一个数组:

$array=[
    0 => [col_a => 1, col_b => 2, col_c =>3],
    1 => [col_a => 2, col_b => 3, col_c =>4]
];
有没有一种方法可以做到:

$result=query_array($array,"SELECT col_c FROM ARRAY WHERE col_a=2 AND col_b=3");
print_r($result);
// array (col_c => 4)
编辑:

其中
query\u array
是对数组执行SQL的函数

我知道我可以在元素之间循环并测试每一行。我想知道是否有一个内置函数可以像虚构的
query\u数组
函数那样实现这一点

 $array=[
    0 => ['col_a' => 1, 'col_b' => 2, 'col_c' =>3],
    1 => ['col_a' => 2, 'col_b' => 3, 'col_c' =>4]
];


$val1 =2;
$val2 = 3;
$isArray = array_values(array_filter($array, function ($data) use ($val1,$val2) {
    return ($data['col_a'] == $val1 &&  $data['col_b'] == $val2);
}));
试试这样的


尝试类似这样的操作

不,它不是查询数组,您只能根据其键或值对其进行筛选。如果您感兴趣,那么,如果您真的需要它,您可以使用并进行回调来模拟where子句。不,它不是查询数组,您只能根据它的键或值对它进行过滤。如果您感兴趣..如果您真的需要它,您可以使用并进行回调来模拟where子句..另外注意,这不会保留原始数组的键。。而
array\u filter
会保留。另外注意,这不会保留原始数组的键。。而
array\u filter
$arrays = [
   ['col_a' => 1, 'col_b' => 2, 'col_c' => 3],
   ['col_a' => 2, 'col_b' => 3, 'col_c' => 4]
];


foreach ($arrays as $array) {
   $res = array_filter($array, function($v, $k) {
      return ($k == 'col_a' && $v == 2) || ($k == 'col_b' && $v == 3);
   }, ARRAY_FILTER_USE_BOTH);

   if (count($res) == 2) {
      print_r([
          'col_c' => $array['col_c']
      ]);
   }
}