1

私は次の配列を持っています:

Array
(
    [0] => BCD
    [1] => ACE
    [2] => AHP
    [3] => BGH
    [4] => ART
    [5] => COT
    [6] => ARG
    [7] => BGT
)

最初の文字が次の配列にあるすべての要素を一致させる必要があります。

Array
(
    [0] => B
    [1] => A
)

取得するため:

Array
(
    [0] => ACE
    [1] => AHP
    [2] => BGH
    [3] => ART
    [4] => ARG
    [5] => BGT
)

配列全体をループする以外に、PHPでこれを行うにはどうすればよいですか?これまたはその組み合わせのための組み込みのPHP配列関数はありますか?結果の配列のキーと値の両方について、順序は重要ではありません。どうもありがとう。

4

1 に答える 1

2

これらの操作にはarray_filterを使用できます。

$array = array('CBD', 'NHN', 'NHP', 'WHC', 'NND', 'CQN', 'WST', 'WVT');

$whitelist = array('W', 'N');

$filtered = array_filter($array, function($val) use ($whitelist) {
  // check if first letter is in the whitelist array
  if (in_array($val{0}, $whitelist)) {
    return $val;
  }
  return false;
});

出力:

Array
(
    [1] => NHN
    [2] => NHP
    [3] => WHC
    [4] => NND
    [6] => WST
    [7] => WVT
)
于 2012-06-15T12:16:18.640 に答える