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']
]);
}
}