0

我有一个函数可以从数据库中获取来自不同表的用户的所有数据。我正在使用PDO,每个返回的SELECTassociative array.

我想要的是该函数将只返回一个,array包括从数据库中获取的所有信息。如此庞大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()连接两个数组。

+ 运算符: 将第二个数组的元素附加到第一个数组中。对于两个数组中都存在的键,第二个数组的匹配元素将被忽略。

array_merge(): 将第二个数组的元素附加到第一个数组中。如果两个数组中的元素具有相同的键,则此函数的行为取决于:

  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 回答