1

MySQLクエリの結果として、次の配列を取得しました。

Array
(
    [0] => Array
        (
            [id] => 11
            [owner] => Mark
        )

    [1] => Array
        (
            [id] => 10
            [owner] => David
        )

    [2] => Array
        (
            [id] => 9
            [owner] => Poul
        )

    [3] => Array
        (
            [id] => 8
            [owner] => Peter
        )

    [4] => Array
        (
            [id] => 7
            [owner] => Peter
        )

    [5] => Array
        (
            [id] => 6
            [owner] => Lucas
        )

)

PHP関数を使用してforeachプロセスを省略して変更する方法はありますか?

次のように表示したいと思います。

Array
(
    11 => Mark
    10 => David
    9 => Poul
    8 => Peter
    7 => Peter
    6 => Lucas
)

したがって、基本的には、idとのowner値からこの配列を作成する必要があります。のようにid => owner

それは可能ですか?

4

2 に答える 2

2

PDOを使用している場合は、次のように実行できます。

$stmt = $dbh->query("SELECT id, owner FROM table");
$arr = $stmt->fetchAll(PDO::FETCH_COLUMN|PDO::FETCH_GROUP);

これにより、配列が得られます。配列のインデックスは、結果の最初の列の値、つまりidです。

于 2012-09-12T23:31:15.137 に答える
0

元の配列が$arr次の場合、次のコードで必要に応じて変更できます。

$tot = count($arr);
for($i=0;$i<$tot;$i++) {
   $key = $arr[$i]['id'];
   $val = $arr[$i]['owner'];
   unset($arr[$i]);
   $arr[$key] = $val;
}
于 2012-09-12T23:38:23.887 に答える