如何从foreach循环输出中分配PHP变量


How to assign PHP variables from foreach loop output?

我有一个foreach循环,它打印出数据库表中所有条目的用户名,如下所示:

foreach($results as $result){
echo $result->username;
echo '<br>';
}

随着越来越多的用户被添加到表中,列表将不断增加。我想获取完整的列表,并将每个条目分配给一个单独的PHP变量,以便稍后在PHP脚本中使用。最好的方法是什么?

如果不想要单独的变量,请尝试一个数组:

foreach($results as $result){
    $names[] = $result->username;
}

在PHP7中,它甚至更容易:

$names = array_column($results, null, 'username');

根据您的评论I am trying to apply each username as a javascript variable,您所需要的似乎只是:

<script type="text/javascript">
  var usernames = <?php echo json_encode($results); ?>;
</script>

当然,如果您只需要$results数组中的一个元素,那么您应该首先使用其他答案之一生成一个精简列表;如果使用整个$results数组,其中的所有信息都将发送到浏览器/对访问者可见。

将它们放在一个数组中:

$names = array();
foreach ($results as $result) {
    $names[] = $result->username;
}

foreach循环太过时了:p

$names = array_map(function($r) {return $r->username;},$results);

我不知道你为什么也想要。。。。但你可以。。。

foreach($results as $result)
{
    $$result->username = $result;
 }

这回答了你的问题。但为什么有人会这么做我无法理解

我使用以下代码

<?php
$string = 'a|b|c|d|e|f';
$tags = explode('|' , $string);

foreach($tags as $i =>$key) {
$i >0;
     $a[$i]=$key .'</br>';
}
echo $a[3];

祝好运