什么是最好使用:str_replace,没有str_replace或任何其他选项?

时间:2017-04-13 23:39:13

标签: php arrays variables str-replace

最好使用什么:str_replace,没有str_replace或任何其他选项?

例如,我有一个非空的数组,由php基于XML文件生成,我有一个需要更改的变量。如果值在数组中且变量具有标准值,则该值应更改为其他值(转换,其他字等)。

我可以使用以下代码执行此操作:

<?php
$ethnic_later = 'niet opgegeven';
$ethnic_array = array(  'Blank',
                        'getint',
                        'Aziatisch',
                        'Zuid-Amerikaans'
                    );
if (in_array('Blank', $ethnic_array) && $ethnic == 'Blank'){
    $ethnic = str_replace($ethnic, 'blanke', $ethnic);
}elseif (in_array('getint', $ethnic_array) && $ethnic == 'getint'){
    $ethnic = str_replace($ethnic, 'getinte', $ethnic);
}elseif (in_array('Aziatisch', $ethnic_array) && $ethnic == 'Aziatisch'){
    $ethnic = str_replace($ethnic, 'Aziatische', $ethnic);
}elseif(in_array($ethnic, $ethnic_array) && $ethnic == 'Zuid-Amerikaans'){
    $ethnic = str_replace($ethnic, 'Zuid Amerikaanse', $ethnic);
}else{
    $ethnic = str_replace($ethnic, $ethnic_later, $ethnic);
}

echo 'een mooie ' . $ethnic . ' kleur';
?>

或者我可以在不使用下面的php函数$ethnic的情况下覆盖str_replace()的值:

<?php
$ethnic_later = 'niet opgegeven';
$ethnic_array = array(  'Blank',
                        'getint',
                        'Aziatisch',
                        'Zuid-Amerikaans'
                    );
if (in_array('Blank', $ethnic_array) && $ethnic == 'Blank'){
    $ethnic = 'blanke';
}elseif (in_array('getint', $ethnic_array) && $ethnic == 'getint'){
    $ethnic = 'getinte';
}elseif (in_array('Aziatisch', $ethnic_array) && $ethnic == 'Aziatisch'){
    $ethnic = 'Aziatische';
}elseif(in_array($ethnic, $ethnic_array) && $ethnic == 'Zuid-Amerikaans'){
    $ethnic = 'Zuid Amerikaanse';
}else{
    $ethnic = $ethnic_later;
}

echo 'een mooie ' . $ethnic . ' kleur';
?>

有更多可能让这样的事情发挥作用,我在上面发布了2 ...我相信不使用str_replace()的最后一个选项比使用str_replace()更快...

  

我的问题:使用PHP做我想做的事情的最佳方法是什么?你如何做这类任务?

1 个答案:

答案 0 :(得分:0)

创建一个数组,该数组由您在$ ethnic中所期望的值编制索引,并包含您希望$ ethnic变量映射到的字符串,如下所示:

temp->next->data

如果要添加更多$ ethnics,请向阵列添加更多元素。