【问题标题】:How to get values from multidimensional array in php?如何从php中的多维数组中获取值?
【发布时间】:2012-01-27 06:50:50
【问题描述】:

我有如下多维数组,

Array
(
    [14289] => Array
        (
            [0] => Ability:B,Itemname:Session #3: Tues June 28th - Fri July 8th (9-2:00PM)#1 only: 2pm
            [1] => Ability:B+,Itemname:Session #3: Tues June 28th - Fri July 8th (9-2:00PM)#1 only: 2pm
            [2] => Ability:B++,Itemname:Session #3: Tues June 28th - Fri July 8th (9-2:00PM)#1 only: 2pm
        )

    [14279] => Array
        (
            [0] => Ability:N/S,Itemname:Session #1: Tues May 31st - Fri June 10th (1-5:30PM)#1 only: 1pm
            [1] => Ability:N/S+,Itemname:Session #1: Tues May 31st - Fri June 10th (1-5:30PM)#1 only: 1pm
            [2] => Ability:N/S++,Itemname:Session #1: Tues May 31st - Fri June 10th (1-5:30PM)#1 only: 1pm
        )

    [14288] => Array
        (
            [0] => Ability:N/S,Itemname:Session #3: Tues June 28th - Fri July 8th (9-2:00PM)#1 only: 1:30pm
        )

    [14291] => Array
        (
            [0] => Ability:N/S+,Itemname:Session #4: Tues July 12th - Fri July 22nd (9-2:00PM)#1 only: 1pm
        )

    [14284] => Array
        (
            [0] => Ability:N/S++,Itemname:Session #2: Tues June 14th - Fri June 24th (9-2:00PM)#1 only: 1:30pm
        )

)

我需要从这个数组中获取值并将这些值分解为能力和项目名称。

我该怎么做?

【问题讨论】:

    标签: php arrays multidimensional-array


    【解决方案1】:

    假设$array 包含您的数据,以下代码将执行此操作。

    $result = array();
    foreach($array as $a){
        foreach($a as $l){
            list($ab, $it) = explode(",", $l, 2);
            $ab = substr($ab, strlen("Ability:"));
            $it = substr($it, strlen("Itemname:"));
            $result[] = array(
                'Ability' => $ab,
                'Itemname' => $it
            );
        }
    }
    

    【讨论】:

      【解决方案2】:

      试试这个,它对我有用。我用正则表达式匹配所需的字符串

      <?php
      $arr[][] = 'Ability:B,Itemname:Session #3: Tues June 28th - Fri July 8th (9-2:00PM)#1 only: 2pm';
      $arr[][] = 'Ability:B+,Itemname:Session #3: Tues June 28th - Fri July 8th (9-2:00PM)#1 only: 2pm';
      $arr[][] = 'Ability:B++,Itemname:Session #3: Tues June 28th - Fri July 8th (9-2:00PM)#1 only: 2pm';
      
      $pattern = '/Ability:(.*),Itemname:(.*)$/m';
      
      for ($i = 0; $i < count($arr); $i++) {
          for ($j = 0; $j < count($arr[$i]); $j++) {
              preg_match_all($pattern, $arr[$i][$j], $matchResult);
              echo 'Original string: '. $arr[$i][$j].'<br>';
              echo 'Ability: '.$matchResult[1][0].'<br>';
              echo 'Itemname: '.$matchResult[2][0].'<br>';
              echo '<br><hr><br>';
          }
      }
      ?>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多