如何添加到数组然后输出项目?
How to add to array then output items?
我有一堆用户,每个用户都有一个描述,我想将这些描述添加到一个数组中。然后我想读取数组,拆分每个描述,并将结果设置为变量。示例描述为:
italian, mexican
或 french, 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>
我有一堆用户,每个用户都有一个描述,我想将这些描述添加到一个数组中。然后我想读取数组,拆分每个描述,并将结果设置为变量。示例描述为:
italian, mexican
或 french, 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>