0

これが私の問題です。動作しないサンプル PHP を入手したので、多かれ少なかれ「私のズボンの席で」これを書こうとしてきました。私の正規表現は錆びていて、多次元配列を扱ったことがないので、これは私の経験の範囲外です。

私はこのような配列を取得していますが、[1] に「エクスポート」という単語が含まれているレポート ID のみが必要であり、それらを別のスクリプトに渡す必要があります。実際にエクスポートできる別のスクリプトに渡すことができる結果セット ID。

 [0] => Array
    (
        [0] => REPORTIDXXXXXXXXXXXXXXXXXXXXXXXXXXX
        [1] => REPORT EXPORT NAME#1
        [2] => REPORT DESCRIPTION #1
        [3] => 2012-10-02T17:31:30
    )

[1] => Array
    (
        [0] => REPORTIDYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
        [1] => REPORTOTHERNAME#2
        [2] => REPORTDESCRIPTION #2
        [3] => 2012-09-28T15:15:17
    )

[2] => Array
    (
        [0] => REPORTIDZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
        [1] => REPORT EXPORT NAME#3
        [2] => REPORT DESCRIPTION #3
        [3] => 2012-09-28T14:59:17
    )
4

1 に答える 1

0

このようなものが動作するはずです:

function get_report_ids(array $rs) {
   $results = array();
   // loop over your data structure
   foreach($rs as $key => $data) {

      // If element 1 contains EXPORT (case insensitive)
      if(stripos($data[1], 'EXPORT') !== false) {
         // regex to capture the ID from element 0
         if(preg_match('/^EXPORTID(.*)$/i', $data[0], $matches)) {
            // add the ID to the results array
            $results[] = $matches[1];
         }
      }
   }

   // if we had results then return the array, otherwise return null
   return !empty($results) ? $results : null;
}

戻り値の例:

array(
  0 => 'XXXXXXXXXXXXXXXXXXXXXXXXXXX',
  1 => 'ZZZZZZZZZZZZZZZZZZZZZZZZZZZZ'
)
于 2012-10-02T23:05:06.310 に答える