Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql/php-在while语句中合并mysql输出中的多个数组_Php_Mysql_Array Merge - Fatal编程技术网

mysql/php-在while语句中合并mysql输出中的多个数组

mysql/php-在while语句中合并mysql输出中的多个数组,php,mysql,array-merge,Php,Mysql,Array Merge,我需要合并mysql数据库中的许多数组。阵列的数量可能会有所不同。我将数据序列化到数据库中,并在退出时取消序列化。我遇到的难题是试图使用array\u merge,但不确定如何将数据正确地放入其中 比如我有 $sql_get_votes_data = "SELECT * FROM algo_users WHERE data LIKE '%$movie_id%'"; $result_get_votes_data = mysql_query($sql_get_votes_data); $final_

我需要合并mysql数据库中的许多数组。阵列的数量可能会有所不同。我将数据序列化到数据库中,并在退出时取消序列化。我遇到的难题是试图使用
array\u merge
,但不确定如何将数据正确地放入其中

比如我有

$sql_get_votes_data = "SELECT * FROM algo_users WHERE data LIKE '%$movie_id%'";
$result_get_votes_data = mysql_query($sql_get_votes_data);
$final_array = array();
while($row_get_votes_data = mysql_fetch_array($result_get_votes_data)) {
    $final_array[] = unserialize($row_get_votes_data['data']);
}
最终,我需要能够像这样做一个独特的合并

array_unique(array_merge($final_array1,$final_array2), SORT_REGULAR);
但是,由于我必须将每个数组放入一个单独的变量中,以便传递到
array\u merge
中,因此我不确定如何从mysql调用中执行该操作

任何帮助都会很棒。

您可以使用

<?php
$myarrs = array();

$result = call_user_func_array( 'array_merge', $myarrs); var_dump($result);

$myarrs[] = array(1,2,3);
$result = call_user_func_array( 'array_merge', $myarrs); var_dump($result);

$myarrs[] = array(4,5,6);
$result = call_user_func_array( 'array_merge', $myarrs); var_dump($result);

$myarrs[] = array(7,8,9);
$result = call_user_func_array( 'array_merge', $myarrs); var_dump($result);

为什么不在循环中合并每个新数组

$mergedArray=array();
while($row_get_votes_data = mysql_fetch_array($result_get_votes_data)) {
    $final_array = unserialize($row_get_votes_data['data']);
    $mergedArray=array_merge($mergedArray,$final_array);
}
array_unique($mergedArray, SORT_REGULAR);
或者,如果需要跟踪单个阵列,请执行以下操作:

$mergedArray=array();
$i=0;
while($row_get_votes_data = mysql_fetch_array($result_get_votes_data)) {
    $final_array[$i] = unserialize($row_get_votes_data['data']);
    $mergedArray=array_merge($mergedArray,$final_array[$i]);
    $i++
}
array_unique($mergedArray, SORT_REGULAR);

编辑:我首先了解到您只是希望将所有数组合并到一个数组中。上面编辑过的答案现在也删除了重复的条目,正如我现在理解的那样。是否可以在查询中合并它们,如join等?此外,不要再使用mysql_*函数(不安全且不再受支持)。请查看mysqli_*函数或pdo库文档。