Your question is a little confusing but I think what you want is:
<?php
$arr = Array
(
"pendingReview" => Array
(
"by" => "Rubab Admani",
"date" => "2014 - 01 - 08 12:03:45"
),
"pendingAssignment" => Array
(
"by" => "Farrukh Mushtaq",
"date" => "2014 - 01 - 08 16:11:21"
),
"inProgress" => Array
(
"by" => "Beatriz Artal",
"date" => "2014 - 01 - 08 16:48:27"
),
"finalReviewing" => Array
(
"by" => "Irfan Shafiq",
"date" => "2014 - 01 - 09 11:01:26"
),
"readyToSubmit" => Array
(
"by" => "Beatriz Artal",
"date" => "2014 - 01 - 09 13:37:26"
)
);
$display = "";
foreach($arr AS $status => $info){
preg_match_all("/[A-Z]?[a-z]+/",$status,$statusBits);
$status = implode(" ",$statusBits[0]);
$status = ucwords($status);
$display = str_replace("|nxtname|",$info['by'],$display);
$display .= "{$info['by']} {$status} |nxtname| {$info['date']}\n";
}
echo $display;
This outputs (I wasn't sure how you wanted to handle the last one, where there is no next person.):
Rubab Admani Pending Review Farrukh Mushtaq 2014 - 01 - 08 12:03:45
Farrukh Mushtaq Pending Assignment Beatriz Artal 2014 - 01 - 08 16:11:21
Beatriz Artal In Progress Irfan Shafiq 2014 - 01 - 08 16:48:27
Irfan Shafiq Final Reviewing Beatriz Artal 2014 - 01 - 09 11:01:26
Beatriz Artal Ready To Submit |nxtname| 2014 - 01 - 09 13:37:26