【问题标题】:PHP Serialized Data output inside foreach loopforeach循环内的PHP序列化数据输出
【发布时间】:2021-06-01 23:02:55
【问题描述】:

我已经被困在这个问题上 2 天了,我知道它比我想象的要简单得多..

我有一个这样的 foreach 循环。

foreach($appointments as $appointment){
  
  $list = $appointment['techs']

}

$appointment['techs'];像这样从数据库中出来。

a:2:{i:0;s:1:"1";i:1;s:2:"12";}

我的问题是,如何循环访问约会,然后显示分配给每个约会的用户...

所需的输出应如下所示,

{ resource : 1, event : 1},{ resource : 12, event : 1}

我真的什么都试过了!任何帮助将不胜感激。

【问题讨论】:

  • 所以你已经确定你有一个序列化的字符串。你试过反序列化它然后使用数组来得到你想要的输出吗?
  • “我真的什么都试过了!” - 请停止说这样的话。首先,您显然没有,其次,这根本没有帮助。 向我们展示您究竟尝试了什么,并给我们一个适当的问题描述。
  • @CBroe 我不想用我所有的错误来混淆我的问题,你是说 StackOverflow 社区更愿意我这样做,还是你个人更喜欢这样做?
  • stackoverflow.com/help/how-to-ask: “解释你是如何遇到你想要解决的问题的,以及任何阻碍你自己解决的困难。”, “并非所有问题都受益于包含代码,但如果您的问题与您编写的代码有关,您应该包含一些。”

标签: php mysql serialization foreach


【解决方案1】:
$array = [];
$string = 'a:2:{i:0;s:1:"1";i:1;s:2:"12";}';
$arr = (unserialize($string));

foreach ($arr as $item){
    array_push($array, json_encode(['resource'=> $item, 'event'=>1]));
}

$i = 0;
$numItems = count($array);

foreach ($array as $item) {
    if (++$i === $numItems) {
        echo $item;
    }
    else{
        echo $item.',';
    }
}
// Output: {"resource":"1","event":1},{"resource":"12","event":1}

【讨论】:

  • 很好,我现在正在尝试。
  • 它是这样出来的... ["{\"resource\":\"1\",\"event\":1}","{\"resource\": \"12\",\"事件\":1}"]["{\"资源\":\"1\",\"事件\":1}","{\"资源\":\ "12\",\"事件\":1}"]["{\"资源\":\"1\",\"事件\":1}","{\"资源\":\" 12\",\"event\":1}" 我怎么能这样。 {资源:1,事件:1},{资源:12,事件:1},{资源:1,事件:1},{资源:12,事件:1},{资源:1,事件:1}, {资源:12,事件:1},
  • 所以输出实际上在约会循环内。我把它找回来了 "{\"resource\":\"1\",\"event\":1}","{\"resource\":\"12\",\"event\": 1}"] 为每个约会。如何在没有 [] 和 \ 斜杠的情况下输出它?
  • 就像一个魅力!!!!它没有我想的那么容易......但非常感谢你!
【解决方案2】:

PHP 命令反序列化它就是您要查找的内容。

foreach($appointments as $appointment){
  
  $list = unserialize($appointment['techs']);

}

【讨论】:

  • 嗨 Jimmy,谢谢您的回复,但我正在尝试 foreach 内部的序列化数据并像这样输出..... {资源:1,事件:1} ,{ 资源:12,事件:1}
猜你喜欢
  • 2016-09-26
  • 2012-07-19
  • 1970-01-01
  • 2020-04-15
  • 2013-07-24
  • 1970-01-01
  • 1970-01-01
  • 2017-05-28
  • 2022-01-27
相关资源
最近更新 更多