0

これは私が使用するクエリです:

$idList="32,33,21,11";          
$query = "SELECT post_id, meta_value FROM wp_posts 
          WHERE meta_key = 'grade' AND post_id IN ($idList)";

その結果、where句がキーになります。

$result = array(
              0 => array('post_id'=> 32, 'meta_value'=>5),
              1 => array('post_id'=> 33, 'meta_value'=>2),
              2 => array('post_id'=> 21, 'meta_value'=>8),
           )

私はこのような結果を得たいと思っています:

$result = array(
              0 => array( 32 => 5 ),
              1 => array( 33 => 2 ),
              2 => array( 21 => 8 ),
           )

これを達成する方法は?ありがとう!

4

1 に答える 1

1

次のように結果セットをループします。

$_final = array(); // new result set

foreach ($result as $value)
  $_final[] = array($value['post_id'] => $value['meta_value']);

unset($result); // free memory from old result set

更新:要素が多すぎてメモリ消費が心配な場合は、次の方法で実行できます。

$_final = array(); // new result set

foreach ($result as $key => $value) {
  $_final[] = array($value['post_id'] => $value['meta_value']); // composing new data
  unset($result[$key]); // unsetting already parsed value
}

unset($result); // freeing memory from old result set
于 2012-08-16T16:07:25.183 に答える