Php 混合联想阵列
我有一个函数,可以从数据库中获取来自不同表的用户的所有数据。 我使用的是Php 混合联想阵列,php,Php,我有一个函数,可以从数据库中获取来自不同表的用户的所有数据。 我使用的是PDO,每个SELECT返回的是一个关联数组 我想要的是,该函数只返回一个数组,包括从数据库获取的所有信息。因此,一个包含所有用户数据的大型数组 问题是我会出错,因为我不能简单地合并更多的数组,否则我会出现数组到字符串的转换错误 如何将所有数组混合到一个可理解的数组 function userInfo($uID, $pdo) { $user = PDOselect('user', '*', array('id_use
PDO
,每个SELECT
返回的是一个关联数组
我想要的是,该函数只返回一个数组
,包括从数据库获取的所有信息。因此,一个包含所有用户数据的大型数组
问题是我会出错,因为我不能简单地合并更多的数组
,否则我会出现数组到字符串的转换错误
如何将所有数组
混合到一个可理解的数组
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 .....
}
看起来你应该这样做:
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..
);
}
您可以使用+运算符或数组_merge()连接两个数组
+操作员:
将第二个数组的元素追加到第一个数组中。对于两个数组中都存在的键,将忽略第二个数组的匹配元素
数组_merge():
将第二个数组的元素追加到第一个数组中。如果两个数组中的元素具有相同的键,则此函数的行为取决于:
键是数字的:元素将被追加,键
重新编号
键是一个字符串:后面的值将替换
第一个李>
例如:
// 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);
使用(+):
使用(数组\合并):
我希望这对你有用。你可以用两种方法解决这个问题。1创建一个sql语句以返回一个数据集,或创建一个函数以通过迭代多个数组来构造单个数组
$result = $array1 + $array2;
// $result: array ( [colour] => red, [0] => 2, [1] => 4, [shape] => circle, [2] => 4 )
$result = array_merge($array1, $array2);
// $result: array ( [colour] => green, [0] => 2, [1] => 4, [2] => a, [3] => b, [shape] => circle, [4] => 4 )