2012-11-22 80 views
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(大小,尺寸,大小...)

谢谢!

回答

1

你可以做这样的事情: -

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

然后只是通过$sizesIN查询

编辑

在回答下面的评论,你可以使用array_unique删除重复的尺寸,例如:

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

真棒!我没有看到如何避免在IN中重复大小。你知道该怎么做吗? –

0
$sizes = array(); 
foreach($array as $value) { 
    $sizes[] = $value['size']; 
} 
$query = implode(',', $sizes); 

查询... " IN ($query) " ..

0

在这里你去:

$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); 
相关问题