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 (サイズ、サイズ、サイズ...)

ありがとう!

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 に答える