2012-11-22 79 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); 
相關問題