1

PHPで配列内の他の要素を取得するためのより良い方法はありますか?

$aそれが確実に配列に存在すると仮定します。

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

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

このような小さなことにはコードが多すぎるようです。

編集:私は三項構文を求めていません。これを自動的に行う何らかの関数を探しています。

EDIT2:私は1つの文字列を知っています。その文字列と別の文字列が配列に存在することを私は知っています。もう1つ欲しいです。どのPHP関数を使用できますか?

4

6 に答える 6

3

2 つの要素を持つ単なる配列であることが保証され、$a が $array の値として存在することが保証されている場合

$b = $array[1 - array_search($a, $array)];
于 2013-02-19T20:37:53.600 に答える
2

三項を使用して構文を短縮できます。

$b = ($a==$array[0]) ? $array[1] : $array[0];
于 2013-02-19T20:30:14.677 に答える
1

There's not really a function to do what you're describing, but if you're looking to shorten your code, and you don't want to use a ternary, then you can do this:

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

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

This works if, as you stated, $a definitely exists in the array.

于 2013-02-19T20:35:10.693 に答える
0

これをさらに醜くするために、これが私の解決策です:

$b = $array[!array_search($a, $array)];
于 2013-02-19T20:50:57.920 に答える
0

配列が 2 つの要素よりも長い可能性があると仮定すると、検索を実行できませんでしたか?

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

于 2013-02-19T20:34:58.097 に答える
0

あなたが使用することができます:

$b = $a == $array[0] ? $array[1] : $array[0] ;
于 2013-02-19T20:30:52.733 に答える