2

(DB を照会するときに非常に便利です)。
複数の薄暗い配列がある場合

 [['id'=>1],['id'=>2],['id'=>34],['id'=>67]]

そして私が欲しいのは[1,2,34,67]

私はコードでそれを行う方法を知っています。これを行う方法が PHP に組み込まれている (または PDO にある可能性がある) かどうかを尋ねるだけです。

4

4 に答える 4

3

配列として単一の列のみを返すPDO::FETCH_COLUMNモードが必要だと思います:fetchAll

<?php
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

/* Fetch all of the values of the first column */
$result = $sth->fetchAll(PDO::FETCH_COLUMN, 0);
var_dump($result);
?>

マニュアルから:

結果セットから 1 つの列のすべての値で構成される配列を返すには、PDO::FETCH_COLUMN を指定します。column-index パラメータを使用して、必要な列を指定できます。

于 2010-02-05T16:14:26.367 に答える
1

非常に簡単な方法は、多次元配列を平坦化することです

このコードはhttp://php.net/manual/en/function.array-values.phpから抽出されました

<?php 
  function array_flatten($array, $flat = false) 
  { 
    if (!is_array($array) || empty($array)) return ''; 
    if (empty($flat)) $flat = array(); 

    foreach ($array as $key => $val) { 
      if (is_array($val)) $flat = array_flatten($val, $flat); 
      else $flat[] = $val; 
    } 

    return $flat; 
  } 

  // will get your flattened array
  print_r( array_flatten( $vals ) );
?>
于 2010-02-05T16:21:21.017 に答える
0

多分array_values(array_values($array));

于 2010-02-05T16:13:34.543 に答える
0

必要な配列を作成することはできませんか?

$old = array( array( 'id'=>1 ), array( 'id'=>2 ), array( 'id'=>34 ), array( 'id'=>67 ) );
$arr = array();
foreach( $old as $item ) {
    $arr[] = $item['id'];
}

//$arr = [ 1, 2, 34, 67 ];
于 2010-02-05T16:14:18.270 に答える