Php 如何将数组的首字母大写值转换为小写

Php 如何将数组的首字母大写值转换为小写,php,arrays,database,string,Php,Arrays,Database,String,我有一张表格 名称:即形式(Name=“detail[Name]”) 地址:即以(name=“detail[Address]”格式) 电子邮件:即以(name=“detail[Email]”的形式发送 我在php中获取了如下数据: $data=array\u map('ucwords',$\u POST['detail']) 在使用insert查询后,我得到了数据库中所有首字母大写的值 然后我意识到电子邮件不应该使用大写字母,所以我考虑将其转换为小写字母,同时确保其他值保持不变 我失败了。。。因

我有一张表格

名称:即形式(Name=“detail[Name]”)

地址:即以(name=“detail[Address]”格式)

电子邮件:即以(name=“detail[Email]”的形式发送

我在php中获取了如下数据:

$data=array\u map('ucwords',$\u POST['detail'])

在使用insert查询后,我得到了数据库中所有首字母大写的值

然后我意识到电子邮件不应该使用大写字母,所以我考虑将其转换为小写字母,同时确保其他值保持不变

我失败了。。。因此,任何有兴趣帮助我的人都是最受欢迎的:D

提前感谢

简单:PHP的函数


$lower=strtolower($value)

您可以使用foreach对所有发布的值进行更改,如

  $detail = $_POST['detail'];
  $arr = array();
  foreach($detail as $key => $value){

       if($key != 'email'){
           $arr[$key] = ucword($value);
        } else {
           $arr[$key] = $value;
        }

  }

现在,您将获得一个新的数组$arr,您可以将其直接存储到没有首字母大写的电子邮件的数据库中

您可以使用此功能以小写形式获取首字母:

$email = strtolower($email);

那你为什么要用ucwords呢

$data = array_map('ucwords', $_POST['detail']);
这将使
$\u POST['detail']
中的内容以大写形式显示。不要用它

移除
array\u映射
ucwords
,然后像这样做

$data =  $_POST['detail'];

它非常简单。但是你说它是动态的。你能详细说明或粘贴你的代码吗。

如果你想将整个单词转换成小写,那么只需使用:

$oldString = "Something";
$newString = $strtolower($oldString);
否则,如果要严格转换第一个字母,则可以使用:

$oldString = "SOMETHING";
$newString = $strtolower($substr($oldString, 0, 1)) . $substr($oldString, 1);

你没有明白我。。。。。。谢谢你的回复。。。。。。。我使用的是动态查询,所以不能这样做。。。。。。。strtolower(我想)…电子邮件不是总是在
$data['email']
?@kingkero-没错,我看不出这是动态的。要执行查询,我需要确保所需的数据是数组格式的我希望我可以这样做,但我的查询是动态的,我需要确保它是数组格式的,以便执行查询。它将在任何动态查询中工作,因为每次它只检查电子邮件,而不检查电子邮件然后使用
$data['email']=strtolower($data['email'])正如在几个答案中提到的那样。@Stanyer,不,不需要。由于他在
array\u map()
@shankar中使用
ucwords()
,他的内容变得大写了。我需要系统格式的值,所以我必须使用ucwords@ShankarDamodaran我相信他说他明确希望电子邮件小写,而且用户输入可能并不总是小写?@rt8s这并不意味着你不能使用
$data['email']=strtolower($data['email'])
$oldString = "SOMETHING";
$newString = $strtolower($substr($oldString, 0, 1)) . $substr($oldString, 1);