Я не php ниндзя, поэтому, пожалуйста, несите меня по моему запросу. У меня есть следующий код (в упрощенном примере формат здесь, так как в реальном коде происходит много других неуместных вещей):Как я могу получить данные упорядоченным способом из массива php?
Соединение с базой данных уже успешно определено и обрабатывается с помощью include в начале файла php.
// Define our $now value to compare times with
$now = time();
// Define the numerical timestamps required for calculating stuff
$min1st = 5140800; //59.5 days
$max1st = 5227200; //60.5 days
$min2nd = 7732800; //89.5 days
$max2nd = 7819200; //90.5 days
$delmar = 10368000; //120 days
// Get each relevant entry from the key table
try {
$stmt = $conn->prepare("SELECT * FROM keyTable WHERE `status` = 'neutral' ORDER BY `lastModified` ASC");
$stmt->execute();
$result = $stmt->fetchAll();
} catch(PDOException $e) { catchMySQLerror($e->getMessage()); }
// Set up some instance counters
$a = 0;
$b = 0;
$c = 0;
// Create some arrays to pop the data into from the next stage so we can use it again later
$arrA = array();
$arrB = array();
$arrC = array();
Пока все хорошо. Следующая часть предназначена для определения того, какие из результатов базы данных имеют значение «lastModified», установленное за указанный период времени, используя некоторые данные, которые мы установили в верхней части. Это тоже очень хорошо (я думаю).
foreach($result as $value) {
// Lets find the ones that qualify for first email notification
if((($value['lastModified'] + $min1st) < $now) && (($value['lastModified'] + $max1st) > $now)) {
// Now only the entries that have been untouched for 60 days from today are listed here. Yay! Send out an email to the people responsible and remind them! Get user data...
try {
$stmt = $conn->prepare("SELECT * FROM users WHERE `uID` = :uid");
$stmt->bindValue(':uid', $value['uID']);
$stmt->execute();
$uRes = $stmt->fetchAll();
} catch(PDOException $e) { catchMySQLerror($e->getMessage()); }
// Add +1 to the incremental count
$a++;
// Collect some data for the log email
$arrA[] = $value['entryKey']."-"$value['entryID'];
$arrA[] = $value['entryName'];
$arrA[] = $value['entryTitle'];
$arrA[] = $value['dateStarted'];
$arrA[] = $value['lastModified'];
$arrA[] = $uRes[0]['title']." ".$uRes[0]['firstName']." ".$uRes[0]['lastName'];
$arrA[] = $uRes[0]['email'];
Тогда это будет на послать каждый человек, который получает повернутый в этом if
. Код для отправки электронной почты и т. Д. Отлично работает, поэтому вам не нужно все это утомлять. Один и тот же процесс повторяется каждый раз с другими параметрами - вы, вероятно, можете угадать, как это работает, наблюдая за другими численными значениями времени в верхней части. Так отпускает до конца этого (что, где вопрос лежит, после:
}
}
И вот теперь я хочу, чтобы вытащить все данные из $ Arra (а также соответствующие другие массивы $ КРРП и $ arrC), поэтому я могу поместить все в аккуратный стол, а затем отправить его администратору, чтобы они знали, что именно произошло, когда все это было запущено.
Моя проблема заключается в том, что я не знаю, как извлечь ее в удобном для использования способом , $ arrA. Если я var_dump($arrA);
, я успешно получаю все, что должно быть там, но я не вижу способа заказать его в хорошем методе строки за строкой для каждого цикла. Я склонен в конечном итоге с этим при выполнении var_dump($arrA);
:
array(14) { [0]=> string(15) "ABC-63" [1]=> string(36) "Fish and Chips" [2]=> string(33) "Cod Disposal" [3]=> string(22) "1447283057" [4]=> string(22) "1447286317" [5]=> string(21) "Mr Bob Smith" [6]=> string(22) "[email protected]" [7]=> string(15) "XYZ-104" [8]=> string(23) "Blue Socks" [9]=> NULL [10]=> string(22) "1447286691" [11]=> string(22) "1447326523" [12]=> string(20) "Mrs Rosie Jones" [13]=> string(34) "[email protected]" }
Очевидно, что здесь имеется выход для двух записей данных. Я бы знать, как сформировать это в выходной сигнал, который будет в основном выглядеть следующим образом:
<tr>
<td>ABC-63</td>
<td>Fish and Chips</td>
<td>Cod Disposal</td>
<td>1447283057</td>
<td>1447286317</td>
<td>Mr Bob Smith</td>
<td>[email protected]</td>
</tr>
<tr>
<td>XYZ-104</td>
<td>Blue Socks</td>
<td>NULL</td>
<td>1447286691</td>
<td>1447326523</td>
<td>Mrs Rosie Jones</td>
<td>[email protected]</td>
</tr>
Таблица начала и конца, очевидно, будет на месте до и после цикла соответственно.
Как достичь этого результата из $ arrA? Нужно ли мне изменить способ хранения этих данных в массиве ранее, каким-то образом, чтобы иметь какой-то простой способ управлять этим выходом ближе к концу?
Заранее спасибо.
Подумайте, что мой вывод может быть недостаточно ясен. Обновление результата желательно лучше понять ... – df0