Php 最好从get_stream_content()获取数组

Php 最好从get_stream_content()获取数组,php,arrays,amazon-web-services,Php,Arrays,Amazon Web Services,我有一个字符串,它在使用code$content1=stream\u get\u contents($request->getReport())后包含空格 它返回输出 Order ID Order date Fulfillment Channel Points Bonus Message response greater than 24 hours Late Shipment Cancellation Negative Feedback 002-3444-XXXX

我有一个字符串,它在使用code
$content1=stream\u get\u contents($request->getReport())后包含空格
它返回输出

Order ID    Order date  Fulfillment Channel Points  Bonus   Message response greater than 24 hours  Late Shipment   Cancellation    Negative Feedback
002-3444-XXXX   10/31/15    Fulfilled by Amazon 100                                 
002-XXXX-XXX7   10/31/15    Fulfilled by Amazon 100
我想将上面的字符串转换为数组,如下所示

  $array['Order ID']=002-3444-XXXX;
  $array['Order date']=10/31/15;
  $array['Fulfillment Channel']=Fulfilled by Amazon;
  $array['Points']=100;
  $array['Bonus']='';..... so on

请给我建议一种将字符串转换为数组的可能方法。

这是我的代码,正如我所说,它有点凌乱,而且我对正则表达式不是很在行,所以使用它时要小心

<?php
//Our Response from AMAZON
$string = 'Order ID    Order date  Fulfillment Channel Points  Bonus   Message response greater than 24 hours  Late Shipment   Cancellation    Negative Feedback002-3444-XXXX   10/31/15    Fulfilled by Amazon 100   002-XXXX-XXX7   10/31/15    Fulfilled by Amazon 100';

//Since we already know all the headers, we dont need to keep them into the response
$noHeaderStr = substr($string, strpos($string,'Feedback')+8);

//Split the remaining data into an arry
$arrayData = explode('   ', $noHeaderStr);

//Prepare Regex for data verification :
$patternID = '/^([0-9]{3})-(.*){4}-(.*){4}$/';
$patternDate= '/^([0-9]{2})\/([0-9]{2})\/([0-9]{2})$/';
$patternBonus = '/^[0-9]{3}$/';

//index for every order
$i = 0;

//Now we test every data
foreach ($arrayData as $data){
     if (preg_match($patternID, $data)) {
        //if we find an ID, that mean a new order so a new array too
        $newArray[$i] = array();
        $newArray[$i]['OrderID'] = $data;   

     }elseif(preg_match($patternDate, $data)) {
        $newArray[$i]['Order date '] = $data;
        var_dump($newArray[$i]);
        $i++;
     }


     //THIS PART IS MESSY
     /*elseif($data == 'Fulfilled by Amazon 100'){
        $newArray[$i]['Fulfillment Channel Points'] = $data;
        var_dump($newArray[$i]);
        $i++;
     }elseif(preg_match($patternBonus, $data)){
        $newArray[$i]['Bonus'] = $data;
     }*/
}

?>

您总是只有这5个参数吗?不,我们可能会有消息、响应、超过24小时、延迟装运、取消、,非正面反馈如果有任何价值,我可以给你写一个函数,但那会非常具体:/所以我不知道它是否真的有用让我知道你的函数可能对我有帮助..我会根据我的requirement@Nirnae您能否共享将流内容转换为数组的功能?
array (size=2)
  'OrderID' => string '002-3444-XXXX' (length=13)
  'Order date ' => string '10/31/15' (length=8)
array (size=2)
  'OrderID' => string '002-XXXX-XXX7' (length=13)
  'Order date ' => string '10/31/15' (length=8)