我试图在foreach循环之外获取数组的值,但它只给出一个值而不是全部三个;代码是这样的:
$user_id_worker = array();
foreach ($query_result_worker as $row){
$user_id_worker= $row['user_id'];
var_dump($user_id_worker);
}
var_dump($user_id_worker);
第一个var转储给了我:
string '12747' (length=5)
string '12596' (length=5)
string '12759' (length=5)
第二个(在循环之外)给了我:
string '12759' (length=5)
任何想法?谢谢!
答案 0 :(得分:3)
您正在替换其值而不是向您创建的数组添加值。
因此$ user_id_worker变量只保存一个值。在循环之外,它是你放入的最后一个循环(循环的最后一次迭代)。
如果要将项添加到循环内的数组中,请执行以下操作:
$user_id_worker[]= $row['user_id'];
答案 1 :(得分:2)
您不会将其视为数组,只需更新一个变量即可。
问题在于此行$user_id_worker = $row['user_id'];
,您将$user_id_worker
的值设置为该行,然后在下一个循环中将其再次设置为其他值。您没有将变量视为数组。
要添加到数组而不是替换旧值,您必须使用数组速记或数组推送,请参阅下文。
使用数组简写的示例:
$user_id_worker = array();
foreach ($query_result_worker as $row){
$user_id_worker[] = $row['user_id'];
}
var_dump($user_id_worker);
或使用array push:
foreach ($query_result_worker as $row){
array_push($user_id_worker, $row['user_id']);
}
var_dump($user_id_worker);
Jimmy的其他问题
快速提问,如果我在这个数组之后有一个函数,我想在其中使用数组,show_assigned_tasks_workers($ user_id_worker []);这只是不起作用,我怎么能以其他方式做到这一点?谢谢! - 吉米17分钟前
它只是不起作用,函数也做了选择,并且不知道数组将如何在该函数中,它将工作我认为只有数据是这样的:字符串'12747'(长度= 5)string'12596'(length = 5)string'12759'(length = 5)like strings ... - Jimmy 14分钟前
您可能需要围绕要调用的函数(每个工作者一个)执行每个循环。
做类似的事情:
foreach ($user_id_worker as &$workerId) {
show_assigned_tasks_workers($workerId);
}
为每个用户运行一次该功能。
答案 2 :(得分:1)
您应该添加以下值:$user_id_worker[] = "something"
答案 3 :(得分:1)
您在每个循环传递中为$user_id_worker
分配一个新值。
如果要将所有值都作为数组,则必须将值添加到该数组:
$user_id_worker[] = $row['user_id'];
// or:
array_push( $user_id_worker, $row['user_id'] );
答案 4 :(得分:1)
以这种方式更改您的程序:
$user_id_worker = array();
foreach ($query_result_worker as $row){
$user_id_worker[] = $row['user_id'];
var_dump($user_id_worker);
}
答案 5 :(得分:-1)
更正您的代码
$user_id_worker = array();
foreach ($query_result_worker as $row){
$user_id_worker[]=$row['user_id']; //Should give [] as ur appending to array
var_dump($user_id_worker);
}
var_dump($user_id_worker);