如何添加到数组然后输出项目?

How to add to array then output items?

我有一堆用户,每个用户都有一个描述,我想将这些描述添加到一个数组中。然后我想读取数组,拆分每个描述,并将结果设置为变量。示例描述为:

italian, mexicanfrench, american

这是我目前正在做的事情:

<?php
    $stack = array();
    $blogusers = get_users( 'orderby=nicename&role=author' );
    foreach ( $blogusers as $user ) {
        array_push($stack, $user->user_description );
    }
    $out = array_map('trim', explode(',', $stack));
?>

那我做

<ul>
    <li><?php echo $out[0]; ?></li> 
    <li><?php echo $out[1]; ?></li> 
    <li><?php echo $out[2]; ?></li> 
    <li><?php echo $out[3]; ?></li> 
</ul>

但是我得到一个没有结果值的列表

更新

尝试过

$stack = array();
$blogusers = get_users( 'orderby=nicename&role=author' );
foreach ( $blogusers as $user ) {
    $users = array_map('trim', explode(',', $user->user_description) );
    array_push($stack, $users);
}

然后

<li><?php echo $stack[0]; ?></li> 
<li><?php echo $stack[1]; ?></li> 
<li><?php echo $stack[2]; ?></li>

如果您在循环结束后查看 $stack,您将得到与此等效的内容:

<?php
$stack = [
    "italian, mexican",
    "french, american",
    "canadian, irish",
];

如果你 运行 通过爆炸,你不会得到任何东西,因为你传递给它的是一个数组。事实上,如果您设置了正确的错误报告,您会收到关于传递数组而不是字符串的警告。我想你想做的是:

<?php
    $blogusers = get_users( 'orderby=nicename&role=author' );
    foreach ( $blogusers as $user ) {
        $out[] = $user->user_description;
    }
?>
<li><?=$out[0]?></li> 
<li><?=$out[1]?></li> 
<li><?=$out[2]?></li>
...

如果你真的需要在单独的变量中,你可以explode()它,但你不能将数组输出到页面:

<?php
    $blogusers = get_users( 'orderby=nicename&role=author' );
    foreach ( $blogusers as $user ) {
        $out[] = explode(",", $user->user_description);
    }
?>
<li><?=$out[0][0]?></li> 
<li><?=$out[0][1]?></li> 
<li><?=$out[1][0]?></li>
<li><?=$out[1][1]?></li>
...

只需分解每个描述,然后将分解返回的每个元素推入数组。这是假设您不关心重复。

$stack = array();
$blogusers = get_users( 'orderby=nicename&role=author' );
foreach ( $blogusers as $user ) {
    $descTokens = explode(',', $user->user_description);
    $stack = array_merge($stack, $descTokens);
}

<li><?php echo $stack[0]; ?></li> 
<li><?php echo $stack[1]; ?></li> 
<li><?php echo $stack[2]; ?></li>