我在一个名为$ ids的变量中有一个数组,该数组如下所示:
Array
(
[0] => Array
(
[id] => 1
)
[1] => Array
(
[id] => 7
)
) etc
我需要在WHERE id IN($ ids)中使用它; 我该怎么做呢? 感谢。
答案 0 :(得分:2)
您的问题陈述有点令人困惑。但你似乎想知道你要做什么,除了你不知道如何编译id列表?如果是这种情况,请尝试:
$ids = array_map( function( $el ) {
return $el['id'];
}, $array );
如果您的PHP版本低于5.3,则无法使用匿名函数。请改用以下代码。
function comb_arr( $el ) {
return $el['id'];
}
$ids = array_map( 'comb_arr', $array );
答案 1 :(得分:1)
试试这个...........
$data = Array
(
[0] => Array
(
[id] => 1
)
[1] => Array
(
[id] => 7
)
)
$ids = array();
foreach($data as $key => $d) {
array_push($ids,$d['$id']);
}
$sql = "select * from tablename where id IN(implode(',',$ids))";
答案 2 :(得分:0)
如果你的意思是你需要使用数组构建查询,我认为你基本上想要构建查询字符串,所以你可以使用for循环。从像
这样的基本字符串开始$query = "SELECT whatevercolumns FROM whatevertables WHERE id=";
//then loop through your array
for($j = 0; $j < sizeof($array); $j++)
{
$query .= array[$j]
//if it's not the last id you want to add, add an OR to your sql query
if($j < (sizeof($array) - 1))
{
$query .= " OR ";
}
}
它不是很清楚你在问什么,你不能用sql来查询你的php数组。我假设您想要使用您的数组来填充SQL查询。