0

我有一个如下所示的数组数组:

array(40) {
  [0]=>
    array(2) {
    ["id"]=>
    string(2) "ta"
    ["size"]=>
    int(2)
  [1]=>
    array(2) {
    ["id"]=>
    string(2) "tq"
    ["size"]=>
    int(4)
....

我希望能够以一种可以进行如下查询的方式获取所有尺寸:

IN (2,4)

所以...对于每个数组,获取大小键: IN (size,size,size...)

谢谢!

4

3 回答 3

1

干得好:

$a = array("id"=>"ta","size"=>2);
$b = array("id"=>"tq","size"=>4);
$c = array($a,$b);

$in = array();
foreach ($c as $key=>$value) {
    if(array_key_exists("size", $value)){
        $in[] = $value["size"];
    }
}

echo implode(",", $in);
于 2012-11-22T12:29:15.480 回答
1

你可以做这样的事情: -

$sizes = implode(',', array_map(function($v) { return $v['size']; }, $array));

然后只需传递$sizes给您的IN查询

编辑

针对您在下面的评论,您可以使用array_unique删除重复的尺寸,例如:

$sizes = implode(',', array_unique(array_map(function($v) { return $v['size']; }, $array)));
于 2012-11-22T12:29:23.410 回答
0
$sizes = array();
foreach($array as $value) {
  $sizes[] = $value['size'];
}
$query = implode(',', $sizes);

查询" IN ($query) "……

于 2012-11-22T12:29:08.473 回答