如何从 while 循环创建逗号分隔列表?
How to create comma separated list from a while-loop?
$personas = [
'Hermann' => [
'status' => '0',
'gender' => 'maskulin'
],
'Lida' => [
'status' => '1',
'gender' => 'feminin'
],
'Susi' => [
'status' => '0',
'gender' => 'feminin'
],
'Mara' => [
'status' => '0',
'gender' => 'feminin'
]
];
角色状态为 0
echo 'Personas with status 0: ';
while ($status = current($personas)) {
if ($status['status'] == '0') {
$status_list = key($personas);
echo $status_list;
}
next($personas);
}
结果是:
状态为 0 的角色:HermannSusiMara
预计:
状态为 0 的角色:Hermann、Susi、Mara
给你的解决方案有点不同。
$statusZeroPersonae = [];
foreach($personas as $personaName => $persona) {
if ($persona['status'] === '0') {
$statusZeroPersonae[] = $personaName;
}
}
echo 'Personae with status 0: ' . implode(", ", $statusZeroPersonae);
implode()
函数对于此类事情非常方便...
我还冒昧地清理了一下你的代码:
<?php
$personas = [
'Hermann' => [
'status' => '0',
'gender' => 'maskulin'
],
'Lida' => [
'status' => '1',
'gender' => 'feminin'
],
'Susi' => [
'status' => '0',
'gender' => 'feminin'
],
'Mara' => [
'status' => '0',
'gender' => 'feminin'
]
];
echo 'Personas with status 0: ';
while ($status = current($personas)) {
if ($status['status'] == '0') {
$personaName = key($personas);
$personasWithStatus0[] = $personaName;
}
next($personas);
}
echo implode(", ", $personasWithStatus0);
输出显然是:
Personas with status 0: Hermann, Susi, Mara
您可以将它们保存在数组中并使用 join
或 implode
while ($status = current($personas)) {
if ($status['status'] == '0') {
$result[] = key($personas);
}
next($personas);
}
echo 'Personas with status 0: '.join(', ',$result);
工作示例:- https://3v4l.org/qjgPC
$personas = [
'Hermann' => [
'status' => '0',
'gender' => 'maskulin'
],
'Lida' => [
'status' => '1',
'gender' => 'feminin'
],
'Susi' => [
'status' => '0',
'gender' => 'feminin'
],
'Mara' => [
'status' => '0',
'gender' => 'feminin'
]
];
角色状态为 0
echo 'Personas with status 0: ';
while ($status = current($personas)) {
if ($status['status'] == '0') {
$status_list = key($personas);
echo $status_list;
}
next($personas);
}
结果是: 状态为 0 的角色:HermannSusiMara
预计: 状态为 0 的角色:Hermann、Susi、Mara
给你的解决方案有点不同。
$statusZeroPersonae = [];
foreach($personas as $personaName => $persona) {
if ($persona['status'] === '0') {
$statusZeroPersonae[] = $personaName;
}
}
echo 'Personae with status 0: ' . implode(", ", $statusZeroPersonae);
implode()
函数对于此类事情非常方便...
我还冒昧地清理了一下你的代码:
<?php
$personas = [
'Hermann' => [
'status' => '0',
'gender' => 'maskulin'
],
'Lida' => [
'status' => '1',
'gender' => 'feminin'
],
'Susi' => [
'status' => '0',
'gender' => 'feminin'
],
'Mara' => [
'status' => '0',
'gender' => 'feminin'
]
];
echo 'Personas with status 0: ';
while ($status = current($personas)) {
if ($status['status'] == '0') {
$personaName = key($personas);
$personasWithStatus0[] = $personaName;
}
next($personas);
}
echo implode(", ", $personasWithStatus0);
输出显然是:
Personas with status 0: Hermann, Susi, Mara
您可以将它们保存在数组中并使用 join
或 implode
while ($status = current($personas)) {
if ($status['status'] == '0') {
$result[] = key($personas);
}
next($personas);
}
echo 'Personas with status 0: '.join(', ',$result);
工作示例:- https://3v4l.org/qjgPC