向现有PHP数组添加第二个维度

Language: PHP 5 Framework: Joomla 3

I have a single dimension array that I get from get_file_array(). I need to break down the names of the files and eventually query the database for more information. For ease of iteration, I was hoping to add a new dimension to my array rather than create parallel arrays. I thought of iterating through the existing array and adding it one node at a time to a new, specifically multidimensional, perhaps associative array, but this seems inelegant. Is there a way to add a dimension to an existing array in PHP? Here's what I tried last, which obviously doesn't work but conveys the spirit of what I want to accomplish:

require_once "../components/com_esms/models/officelookup.php";

class filearray extends JApplicationCli
{
    var $dir = null;
    //var_dump($dir);
    //error_log("filecopy CWD: ".getcwd());
    //error_log("filecopy files: ".print_r($dir, true));    

   function __construct()
   {      
      $this->dir = scandir("../esms_reports/", 0);
      parent::__construct();
   }

    public function get_file_array()
    {
        //$this->out('Hello World');
        unset($this->dir[0]);
        unset($this->dir[1]);
        $fa = array_values($this->dir);
        return $fa;
    }
}

$arr_filearray_obj = new filearray();
$dir = $arr_filearray_obj->get_file_array();
//error_log("filecopy files: ".print_r($dir, true));
/*
foreach($dir as $filename) 
{
    $fa_underscore = explode("_", $filename);
    error_log("filecopy lotid: ".$fa_underscore[1]);
}
*/

//$officeid = array();

for($i = 0; $i < count($dir); $i++)
{
    $fa_underscore = explode("_", $dir[$i]);
    //error_log("filecopy lotid: ".$fa_underscore[1]);
    //error_log("filecopy number of lots: ".$i);
    $fa_dash = explode("-", $fa_underscore[1]);
    $dir[i][1] = $fa_dash[1];
}
error_log("filecopy officeids: ".print_r($dir, true));
//$result = file_get_contents("http://192.168.1.250/systemname/index.php/option=com_esms&view=officelookup&format=json&officeID=".$officeid[0]);

$officelookup = new EsmsModelofficelookup();

for($o = 0; $o < count($dir); $o++)
{
    $result = $officelookup->get_offices($dir[$o][1]);
}
error_log("filecopy JSON: ".$result);


echo("DONE!");

EDIT: Here's an example of the file names I am manipulating. The point is to get the client id, query it, check if it has a parent client id and make a folder structure based on that, using the client names, not IDs. DDR_1426112931-429_031215.pdf or typeofreport_lotid-clientid_date.pdf

What I would want to add to the array would be the results of my database query, which is a JSON encoded structure containing the client's information and the parent client information, if it exists. It looks something like this:

Array
(
  [id] => 123
  [name] => Dummy
  [parent] => 321
)
Array
(
  [id] => 321
  [name] => DummyParent
  [parent] =>
)