我该如何重构这个PHP数组代码

时间:2013-02-19 20:28:30

标签: php arrays

有没有更好的方法如何在PHP中获取数组中的其他元素?

假设数组中确实存在$a

$array = array('one','two');

if($a==$array[0]){
    $b = $array[1];
}else{
    $b = $array[0];
}

对于这么小的事情,似乎有太多的代码。

编辑:我不是在寻求三元语法。我正在寻找某种能够自动完成此功能的功能。

EDIT2:我知道一个字符串。我知道数组中存在字符串和另一个字符串。我想要另一个。我可以使用什么PHP功能?

6 个答案:

答案 0 :(得分:3)

如果它保证只是一个包含两个元素的数组,并且$ a保证作为$ array中的值存在

$b = $array[1 - array_search($a, $array)];

答案 1 :(得分:2)

您可以使用ternary缩短语法。

$b = ($a==$array[0]) ? $array[1] : $array[0];

答案 2 :(得分:1)

没有真正的功能来执行您所描述的内容,但如果您希望缩短代码,并且不想使用三元组,那么您可以执行此操作:

$array = array('one','two');

$b = $array[0];
if($a==$array[0])
  $b = $array[1];

如果如你所说的那样,$a肯定存在于数组中。

答案 3 :(得分:0)

您可以使用:

$b = $a == $array[0] ? $array[1] : $array[0] ;

答案 4 :(得分:0)

假设您的阵列可能比两个元素长,那么您不能只进行搜索吗?

$b = $array[array_search($a, $array)];

答案 5 :(得分:0)

好的是让这个更难看,这是我的解决方案:

$b = $array[!array_search($a, $array)];