代码之家  ›  专栏  ›  技术社区  ›  flash

如何从字符串中提取几个字段?

php
  •  -3
  • flash  · 技术社区  · 7 年前

    我在网站上工作,我想从一个字符串中提取几个字段。我用来获取该字符串的代码是:

    <?php 
       for ($i = 0; $i < count($data['item']->logistic_out); $i++) {
        echo strtolower($data['item']->logistic_out[$i]->logistics_times);
    
       }
    ?>
    

    上面的echo代码正在打印以下字符串 logistics_times :

    a: 7: {
        s: 3: "mon";a: 2: {
            s: 5: "start";s: 5: "09:00";s: 3: "end";s: 5: "21:00";
        }
        s: 3: "tue";a: 2: {
            s: 5: "start";s: 5: "09:00";s: 3: "end";s: 5: "21:00";
        }
        s: 3: "wed";a: 2: {
            s: 5: "start";s: 5: "09:00";s: 3: "end";s: 5: "21:00";
        }
        s: 3: "thu";a: 2: {
            s: 5: "start";s: 5: "09:00";s: 3: "end";s: 5: "21:00";
        }
        s: 3: "fri";a: 2: {
            s: 5: "start";s: 5: "09:00";s: 3: "end";s: 5: "21:00";
        }
        s: 3: "sat";a: 2: {
            s: 5: "start";s: 5: "09:00";s: 3: "end";s: 5: "21:00";
        }
        s: 3: "sun";a: 2: {
            s: 5: "start";s: 5: "09:00";s: 3: "end";s: 5: "21:00";
        }
    }
    

    问题陈述:

    mon 09:00   21:00
    tue 09:00   21:00
    wed 09:00   21:00
    thu 09:00   21:00
    fri 09:00   21:00
    sat 09:00   21:00
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Ashu    7 年前

    使用Str_replace()从字符串中删除空间&使用unserialize()将数据转换为数组:

    $str = 'a: 7: {s: 3: "mon";a: 2: {s: 5: "start";s: 5: "09:00";s: 3: "end";s: 5: "21:00";}s: 3: "tue";a: 2: {s: 5: "start";s: 5: "09:00";s: 3: "end";s: 5: "21:00";}s: 3: "wed";a: 2: {s: 5: "start";s: 5: "09:00";s: 3: "end";s: 5: "21:00";}s: 3: "thu";a: 2: {s: 5: "start";s: 5: "09:00";s: 3: "end";s: 5: "21:00";}s: 3: "fri";a: 2: {s: 5: "start";s: 5: "09:00";s: 3: "end";s: 5: "21:00";}s: 3: "sat";a: 2: {s: 5: "start";s: 5: "09:00";s: 3: "end";s: 5: "21:00";}s: 3: "sun";a: 2: {s: 5: "start";s: 5: "09:00";s: 3: "end";s: 5: "21:00";}}';
    
    $data = unserialize(str_replace(' ', '', $str));
    
    foreach($data as $key=>$value)
    {
        echo $key." ".$value['start']." ".$value['end']."<br/>";
    }
    
    推荐文章