gpt4 book ai didi

php - 数组中的 ucwords 值

转载 作者:可可西里 更新时间:2023-11-01 00:01:03 28 4
gpt4 key购买 nike

在我的 $_POST 中,我想知道如何将 ucwords 应用于数组内的值“english”和“math”。

Array
(
[name1] => Array
(
[0] => english
[1] => 2
)

[name2] => Array
(
[0] => math
[1] => 1
)

[submit] => Add to List
)

我仍然对操作数组感到困惑,所以我尝试了这个,但没有成功。

foreach($_POST as $key => $value)
{
if(is_array($value))
{
foreach($value as $key2 => $value2)
{
$value2 = ucwords($value2);
}
}
}

最佳答案

通过更改这些值(与任何其他变量一样)。因为它是一个数组,所以它基本上是这样的(对于您的示例中的 "english"):

$_POST['name1'][0] = ucwords($_POST['name1'][0]);

您正在使用 foreach 循环来遍历每个值,这基本上类似于以下(再次简化的)示例(在您的情况下不起作用,只是为了使它更明显) :

$value2 = $_POST['name1'][0];
$value2 = ucwords($value2);

如本例所示,您正在更改 $value2 的值,而不是 $_POST 中的相应条目。您可以在 PHP 中使用引用或别名来实现此目的:

$value2 = &$_POST['name1'][0];
$value2 = ucwords($value2);

这也会改变 $_POST['name1'][0],因为它已经是 aliased Docs作为 $value2,现在是对它的引用。

foreachDocs也支持引用:

foreach($_POST['name1'] as &$value2)
{
$value2 = ucwords($value2);
}
unset($value2); # remove the alias for safety reasons.

查看 $value2 前面的 foreach header 内的 & 符号。这使得 $value2 在遍历数组时成为每个数组条目的别名。

当你在彼此内部迭代两个数组时,你需要应用它两次,这是完整的例子:

foreach ($_POST as $key => &$value)
{
if (is_array($value))
{
foreach ($value as $key2 => &$value2)
{
$value2 = ucwords($value2);
}
unset($value2); # remove alias for safety reasons.
}
}
unset($value); # remove alias for safety reasons.

自然可以在这里防止别名并使用键直接访问这些值:

foreach ($_POST as $keyOuter => $valueOuter)
{
if (is_array($valueOuter))
{
foreach ($valueOuter as $keyInner => $valueInner)
{
$_POST[$keyOuter][$keyInner] = ucwords($valueInner);
}
}
}

这可能更好读,也更容易理解它是如何工作的,因为它不使用任何别名/引用。

关于php - 数组中的 ucwords 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8414865/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com