【问题标题】:Transform part of string in Array Key在 Array Key 中转换部分字符串
【发布时间】:2014-07-29 14:05:16
【问题描述】:

好的,我在使用表单时遇到了一些问题。表单收到一个如下所示的数组:

Array (
[0] => abajur-grande } abajur grande
[1] => lustre-bem-grande } lustre bem grande
)

此信息由表单的此字段发送:

<input type="hidden" name="campo[]" value="<?php echo $urlprod;?> } <?php echo $nome;?><br />" />

所以,我想做的是像这样转换数组键中每个值的第一部分,并删除“}”:

Array (
[abajur-grande] => abajur grande
[lustre-bem-grande] => lustre bem grande
) 

有人有想法吗?

【问题讨论】:

  • 只需删除这部分表单:} &lt;?php echo $nome;?&gt;
  • 看起来像 X-Y 问题...您正在寻找修复损坏代码结果的方法,而不是寻找修复损坏代码本身的方法。从标记中删除 } 字符,这是我的建议

标签: php arrays string key


【解决方案1】:

我会使用 foreach 循环来解决这个问题。

$arr = array(
    'abajur-grande } abajur grande',
    'lustre-bem-grande } lustre bem grande'
);

$newArr = array();
foreach($arr as $value) {
    $parts = explode(' } ', $value);
    if(count($parts) > 1) {
        $newArr[$parts[0]] = $parts[1];
    }
}
print_r($newArr);

【讨论】:

  • 看看隐藏字段是如何被赋予它的价值的......显然这首先是导致问题的原因。如果有问题,不要解决它 -> 修复它。循环数据以修复错误的格式你造成就像修补轮胎你切片
【解决方案2】:

您需要遍历数组并获取每个值,根据} 对其进行拆分,并将第一部分作为键,将第二部分作为值分配给新数组。

$oldArr = array("abajur-grande } abajur grande",
                "lustre-bem-grande } lustre bem grande");   
$newArr = array();

foreach($oldArr as $key) //loop old array and retrieve each element inside $key
{
    //split $key into two pieces by "}"    
    $split = explode("}",$key); 
    //assign the first piece as key and second as value into a new array
    $newArr[$split[0]]= $split[1]; 

}
print_r($newArr);

【讨论】:

    猜你喜欢
    • 2017-12-28
    • 1970-01-01
    • 1970-01-01
    • 2014-06-07
    • 2016-12-14
    • 2017-02-12
    • 2013-01-17
    • 1970-01-01
    • 2016-03-10
    相关资源
    最近更新 更多