-1

我试图在 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)

有任何想法吗?谢谢!

4

6 回答 6

3

您正在替换它的值,而不是向您创建的数组添加值。

所以 $user_id_worker 变量只保存一个值。在循环之外,它是您放入的最后一个(循环的最后一次迭代)。

如果要将项目添加到循环内的数组中,请执行以下操作:

$user_id_worker[]= $row['user_id'];
于 2012-09-18T10:41:56.413 回答
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);

或使用数组推送

foreach ($query_result_worker as $row){
    array_push($user_id_worker, $row['user_id']);
}

var_dump($user_id_worker);

吉米的附加问题

快速提问,如果我在这个数组之后有一个函数并且我想在其中使用数组,show_assigned_tasks_workers($user_id_worker[]); 这只是行不通,我该怎么做?谢谢!– 吉米 17 分钟前

它只是行不通,该函数也进行了选择,并且不知道该函数中的数组将如何,我认为只有当数据如下时它才会起作用:字符串'12747'(长度= 5) string '12596' (length=5) string '12759' (length=5) like strings ... – Jimmy 14 分钟前

您可能需要围绕您正在调用的函数执行一个 for each 循环(每个工作人员一个)。

执行以下操作:

foreach ($user_id_worker as &$workerId) {
  show_assigned_tasks_workers($workerId);
}

它为每个用户运行一次该功能。

于 2012-09-18T10:44:08.863 回答
1

您应该添加如下值:$user_id_worker[] = "something"

于 2012-09-18T10:42:47.027 回答
1

您正在为$user_id_worker每个循环传递分配一个新值。

如果要将所有值作为数组,则必须将值添加到该数组:

$user_id_worker[] = $row['user_id'];
// or:
array_push( $user_id_worker, $row['user_id'] );
于 2012-09-18T10:42:56.100 回答
1

以这种方式更改您的程序:

$user_id_worker = array();
    foreach ($query_result_worker as $row){
    $user_id_worker[] = $row['user_id'];
    var_dump($user_id_worker);
}
于 2012-09-18T10:43:09.237 回答
-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);
于 2012-09-18T10:42:08.333 回答