以下是我的意见:
WINDMILL_1门打开,ABSWITCH1打开,ABSENSE1打开,ABSWITCH2打开,ABSENSE2打开,活动时间:11:30:00: 03/08/2096 WINDMILL_1门打开,ABSWITCH1打开,ABSENSE1打开,ABSWITCH2打开,ABSENSE2打开,活动时间:11:30:00: 03/08/2096 WINDMILL_1门打开,ABSWITCH1打开,ABSENSE1打开,ABSWITCH2打开,ABSENSE2打开,及时警报:12:46:01: 25/01/2012
我的输出
Array(
[0] => Array(
[0] => DOOR OPEN
[1] => ABSWITCH1 OPEN
[2] => ABSENSE1 OPEN
[3] => ABSWITCH2 OPEN
[4] => ABSENSE2 OPEN
[5] => EVENT Time:11:30:00 : 03 / 08 / 2096
)
[1] => Array(
[0] => DOOR OPEN
[1] => ABSWITCH1 OPEN
[2] => ABSENSE1 OPEN
[3] => ABSWITCH2 OPEN
[4] => ABSENSE2 OPEN
[5] => EVENT Time:11:30:00 : 03 / 08 / 2096
)
[2] => Array(
[0] => DOOR OPEN
[1] => ABSWITCH1 OPEN
[2] => ABSENSE1 OPEN
[3] => ABSWITCH2 OPEN
[4] => ABSENSE2 OPEN
[5] => STATUS
[6] => ALARM ON Time:12:46:01 : 25 / 01 / 2012
)
)我设法将上面的输出与以下代码结合在一起
$arr = explode("|", $string);
foreach ($arr as $key => $val)
{
$arr[$key] = explode(',', $val);
}
print_r($arr);但我需要的是
Array (
[0] => Array (
[DOOR] => OPEN
[ABSWITCH1] => OPEN
[ABSENSE1] => OPEN
[ABSWITCH2] => OPEN
[ABSENSE2] => OPEN
[EVENT] => Time:11:30:00 : 03/08/2096
),
...
)请帮帮我。
发布于 2012-01-27 08:19:04
改为:
$tmp1 = explode('|', $string);
foreach ($tmp1 as $key1 => $val1) {
$tmp2 = explode(",", $val1);
foreach ($tmp2 as $key2 => $val2) {
$tmp3 = explode(' ', trim($val2));
$key = ( $tmp3[count($tmp3) - 2] == ':' ? 'EVENT' : $tmp3[count($tmp3) - 2] );
$newArr[$key1][$key] = $tmp3[count($tmp3) - 1];
}
}
print_r($newArr);还可以看到这个示例。
发布于 2012-01-27 08:34:42
我有点困惑,因为在您的字符串中没有看到任何管道分隔符。无论如何,您可以使用以下代码:
// $str is your original string
$arr = array();
foreach (explode('WINDMILL_1 ', $str) as $s) {
if (trim($s) != "")
$arr[] = explode(', ', $s);
}
print_r($arr);输出:
Array
(
[0] => Array
(
[0] => DOOR OPEN
[1] => ABSWITCH1 OPEN
[2] => ABSENSE1 OPEN
[3] => ABSWITCH2 OPEN
[4] => ABSENSE2 OPEN
[5] => EVENT Time:11:30:00 : 03/08/2096
)
[1] => Array
(
[0] => DOOR OPEN
[1] => ABSWITCH1 OPEN
[2] => ABSENSE1 OPEN
[3] => ABSWITCH2 OPEN
[4] => ABSENSE2 OPEN
[5] => EVENT Time:11:30:00 : 03/08/2096
)
[2] => Array
(
[0] => DOOR OPEN
[1] => ABSWITCH1 OPEN
[2] => ABSENSE1 OPEN
[3] => ABSWITCH2 OPEN
[4] => ABSENSE2 OPEN
[5] => STATUS
[6] => ALARM ON Time:12:46:01 : 25/01/2012
)
)https://stackoverflow.com/questions/9030543
复制相似问题