Анализ многострочного текста и сортировка строк массива по выражениям временного диапазона.Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Анализ многострочного текста и сортировка строк массива по выражениям временного диапазона.

Сообщение Anonymous »

У меня есть массив $session, который я извлекаю из файла awstats:

Код: Выделить всё

# Session range - Number of visits
BEGIN_SESSION 7
1h+ 10
5mn-15mn 9
0s-30s 107
2mn-5mn 7
30s-2mn 21
15mn-30mn 4
30mn-1h 11
END_SESSION
Сначала я хотел изменить это, добавив два значения 0–30 секунд и 30 секунд – 2 минуты и создав еще одно, вот как я это попробовал:< /p>

Код: Выделить всё

$newline = "\n";
$lines = explode($newline, $session);
$results = array();
foreach ($lines as $line) {
$parts = explode(" ", trim($line), 2);
if (count($parts) < 2)
continue;
else {
$results[$parts[0]] = intval($parts[1]);
}
}

$temp['0s-30s'] = (isset($results['0s-30s']) ? $results['0s-30s'] : NULL);
$temp['30s-2mn'] = (isset($results['30s-2mn']) ? $results['30s-2mn'] : NULL);
$results['0s-2mn'] = $temp['0s-30s'] + $temp['30s-2mn'];
unset($results['0s-30s'], $results['30s-2mn']);
$session = $results['BEGIN_SESSION'] . $newline;
foreach ($results as $k => $v)
$session .= $k . " " . $v . $newline;
$session .= "END_SESSION";

$session = explode("\n", $session);
unset($session[(count($session) - 1)]);
unset($session[0]);
unset($session[1]);
$sessions = array();

foreach ($session as $key => $value) {
$session[$key] = explode(" ", $value);
$sessions[] = array($session[$key][0], trim($session[$key][1]));
}
и он отображает мне этот массив:

Код: Выделить всё

Array
(
[0] => Array
(
[0] => 1h+
[1] => 10
)

[1] => Array
(
[0] => 5mn-15mn
[1] => 9
)

[2] => Array
(
[0] => 2mn-5mn
[1] => 7
)

[3] => Array
(
[0] => 15mn-30mn
[1] => 4
)

[4] => Array
(
[0] => 30mn-1h
[1] => 11
)

[5] => Array
(
[0] => 0s-2mn
[1] => 128
)

)
Есть ли способ переупорядочить мой массив следующим образом:

Код: Выделить всё

Array
(
[0] => Array
(
[0] => 1h+
[1] => 10
)

[1] => Array
(
[0] => 30mn-1h
[1] => 11
)

[2] => Array
(
[0] => 15mn-30mn
[1] => 4
)

[3] => Array
(
[0] => 5mn-15mn
[1] => 9
)

[4] => Array
(
[0] => 2mn-5mn
[1] => 7
)

[5] => Array
(
[0] => 0s-2mn
[1] => 128
)

)
Примечание: сеансы $session иногда отсутствуют.

Подробнее здесь: https://stackoverflow.com/questions/229 ... xpressions
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»