数组:将元素替换为其他预定义值

时间:2012-07-24 11:17:03

标签: php arrays

我有一个阵列说   array1(asd,ard,f_name,l_name) 现在我想替换 一些价值为

asd with agreement start date

带名字的f_name。

带名字的l_name。

我所做的就是这个,但是如果条件

则不会检查第二个
  for($i = 0; $i < count($changedvalue);$i++){
  //Check if the value at the 'ith' element in the array is the one you want to change
//if it is, set the ith element to some value
if ($changedvalue[$i] == 'asd')
   {$changedvalue[$i] = 'Agreement Start Date';}
   elseif ($changedvalue[$i] == 'ard')
   {$changedvalue[$i] == 'Agreement Renewal Date';}
 }

3 个答案:

答案 0 :(得分:2)

你可以这样做:

foreach ($changedvalue as $key => $value)
{
     switch ($value)
     {
            case('asd'):
                $changedvalue[$key]='Agreement Start Date';
                break;
            case('f_name'):
                $changedvalue[$key]='first name';
                break;
            case('l_name'):
                $changedvalue[$key]='last name';
                break;
     }
}

这样,如果旧值等于其中一个重置值,则遍历数组中的每一行并将值设置为新值。

答案 1 :(得分:1)

你上次陈述中有拼写错误。 '=='应该是赋值运算符'='

答案 2 :(得分:0)

您当前代码的问题是,最后一行中的==应为=

但是,我建议您将代码更改为以下内容:

$valuemap = array(
   'asd' => 'Agreement Start Date',
   'f_name' => 'first name', 
    // and so on...
);

function apply_valuemap($input) {
    global $valuemap;
    return $valuemap[$input];
}

array_map('apply_valuemap', $changedvalue);

这样,您可以更轻松地添加更多要替换的值。