0

DB からさまざまなテーブルのユーザーのすべてのデータを取得する関数があります。私が使用PDOしていて、それぞれに返されるSELECTのはassociative array.

私が欲しいのは、関数がarrayDB から取得したすべての情報を含む 1 つだけを返すことです。arrayすべてのユーザーデータが大きくなります。

arrays問題は、単純にマージできないため、エラーが発生することですArray to string conversion error

すべてをarrays理解できるようにするにはどうすればよいarrayですか?

function userInfo($uID, $pdo) {
    $user = PDOselect('user', '*', array('id_user'=> $uID), $pdo);
    $user_registration = PDOselect('user_registration', '*', array('id_user'=> $uID), $pdo);
    $user_addfields_anagraphic = PDOselect('user_addfields_anagraphic', '*', array('id_user'=> $uID), $pdo);
    $user_addfields_legal = PDOselect('user_addfields_legal', '*', array('id_user'=> $uID), $pdo);
    $user_addfields_public = PDOselect('user_addfields_public', '*', array('id_user'=> $uID), $pdo);
    return .....
}
4

2 に答える 2

2

+演算子またはarray_merge()を使用して、2 つの配列を連結できます。

+ 演算子: 最初の配列に 2 番目の配列の要素を追加します。両方の配列に存在するキーの場合、2 番目の配列の一致する要素は無視されます。

array_merge(): 最初の配列に 2 番目の配列の要素を追加します。両方の配列に同じキーを持つ要素がある場合、この関数の動作は以下に依存します。

  1. キーは数値です:要素が追加され、キーの番号が付け直されます
  2. キーは文字列です。後の値が最初の値を置き換えます。

例:

// array ( [colour] => red, [0] => 2, [1] => 4 )
$array1 = array( "colour" => "red", 2, 4);      

// array ( [0] => a, [1] => b, [colour] => green, [shape] => circle, [2] => 4
$array2 = array( "a", "b", "colour" => "green", "shape" => "circle", 4);

( + ) の使用:

$result = $array1 + $array2;
// $result: array ( [colour] => red, [0] => 2, [1] => 4, [shape] => circle, [2] => 4 )

(array_merge) を使用:

$result = array_merge($array1, $array2);
// $result: array ( [colour] => green, [0] => 2, [1] => 4, [2] => a, [3] => b, [shape] => circle, [4] => 4 )

これがお役に立てば幸いです。

于 2013-06-22T11:07:28.157 に答える
0

次のようにする必要があるようです。

function userInfo($uID, $pdo) {
    return array(
        'user' => PDOselect('user', '*', array('id_user'=> $uID), $pdo),
        'user_registration' => PDOselect('user_registration', '*', array('id_user'=> $uID), $pdo,
        'user_addfields_anagraphic' => PDOselect('user_addfields_anagraphic', '*', array('id_user'=> $uID), $pdo,
        'user_addfields_legal' => PDOselect('user_addfields_legal', '*', array('id_user'=> $uID), $pdo,
        'user_addfields_public' = PDOselect('user_addfields_public', '*', array('id_user'=> $uID), $pdo,
        // etc..
    );
}
于 2013-06-22T10:34:42.750 に答える