0

入力に応じて、特定のノードに対して異なる名前を返す配列があります。たとえば、以下のキー ノードの名前は ですn1:ModemProduct1207が、 の場合もありn1:ModemProduct1308ます。

私はこのようなものを持つ方法があるのだろうかと思っていました:

$array ['n1:ModemProducts'] ['n1:ModemProduct'. (regex here like"n1:ModemProduct[\d0-9]{4}+")];
$modemProducts = $array ['n1:ModemProducts'] ['n1:ModemProduct1207'];

いくつかのオプションを試しましたが、機能させることができませんでした。

4

2 に答える 2

2

一次元配列の小さな関数:

function filterProducts($array, $pattern){
  $result = array();
  foreach($array as $key => $value){
    if (preg_match($pattern, $key)){
      $result[$key] = $value;
    }
  }
  return $result;
}

使用法:

$results = filterProducts($array['n1:ModemProducts'], '/n1:ModemProduct[\d]{4}/');
于 2013-10-01T19:10:23.700 に答える