按空格顺序读取的ZIP文件内容


ZIP file contents read by spacific sequence

我在php中工作,我想从zip文件中读取一些文本文件,比如:

while($zip_entry = zip_read($zip)) {    
    $TableName = strstr(zip_entry_name($zip_entry), '.', true);
}

它按此顺序为我提供表名,如:

1 : BPBrick
2 : BPCust
3 : BPProd
6 : BPStock <---- Notice these lines
5 : BPTran  <---- 
4 : BPValue

但我想用我自己的序列来阅读,下面是想要的序列:

1 : BPBrick
2 : BPCust
3 : BPProd
6 : BPTran <------ These lines reversed
5 : BPStock <-----
4 : BPValue

怎么可能呢,我试着把数组放进去,比如:

while($zip_entry = zip_read($zip)) {
    incoming_array[] = $zip_entry;
}

然后从该数组中获取。问题是,

while($zip_entry = zip_read($zip)) {    
}
  `

在以上数组之后不起作用。我的问题是:

如何将文本文件存储在数组中,然后调用READ函数?

好的,这个代码片段可以帮助您使用逻辑对数组进行排序

// Your array with name of tables initially read from your zip 
$tableNameArr = ... 
var_dump($tableNameArr); // to make sure data read from zip properly 
// Store here items in this format `key` should be after `value`
// E.G. if `BPStock` should be after `BPTran` in your case then
$afterItemsArr = array('BPStock' => 'BPTran', .. other values.. );
foreach($afterItemsArr as $key => $value){
    $key_index = array_search( $key, $tableNameArr);
    $value_index = array_search( $value, $tableNameArr);
    // if value(BPTran) index is more then index of key(BPStock)
    // then replacing their places in $tableNameArr
    if($value_index > $key_index){
       $c = $tableNameArr[$value_index];
       $tableNameArr[$value_index] = $tableNameArr[$key_index];
       $tableNameArr[$key_index] = $c;
    }
}
var_dump($tableNameArr); // to make sure data is ok