2016-09-21 3 views
0

У меня есть массив ответов в переменной массива $ листинга .Здесь составляет $ перечисляя Значение:Как напечатать ответ в CSV-файл с помощью PHP

Array 
(
    [0] => 
    [1] => stdClass Object 
    (
     [status] => failure 
     [response] => Array 
      (
       [0] => stdClass Object 
        (
         [ProId] => 1 
         [status] => failure 
         [errors] => Array 
          (
           [0] => stdClass Object 
            (
             [errorCode] => CONTENT_NOT_FOUND 
             [message] => Content not found. 
             [attributeName] => 
            ) 

          ) 

        ) 

       [1] => stdClass Object 
        (
         [ProId] => 2 
         [status] => failure 
         [errors] => Array 
          (
           [0] => stdClass Object 
            (
             [errorCode] => CONTENT_NOT_FOUND 
             [message] => Content not found. 
             [attributeName] => 
            ) 

          ) 

        ) 

       [2] => stdClass Object 
        (
         [ProId] => 3 
         [status] => updated 
         [errors] => Array 
          (
          ) 

        ) 

       [3] => stdClass Object 
        (
         [ProId] => 4 
         [status] => updated 
         [errors] => Array 
          (
          ) 

        ) 

       [4] => stdClass Object 
        (
         [ProId] => 5 
         [status] => updated 
         [errors] => Array 
          (
          ) 

        ) 

       [5] => stdClass Object 
        (
         [ProId] => 6 
         [status] => updated 
         [errors] => Array 
          (
          ) 

        ) 

       [6] => stdClass Object 
        (
         [ProId] => 7 
         [status] => updated 
         [errors] => Array 
          (
          ) 

        ) 

       [7] => stdClass Object 
        (
         [ProId] => 8 
         [status] => updated 
         [errors] => Array 
          (
          ) 

        ) 

       [8] => stdClass Object 
        (
         [ProId] => 9 
         [status] => updated 
         [errors] => Array 
          (
          ) 

        ) 
       [9] => stdClass Object 
        (
         [ProId] => 10 
         [status] => updated 
         [errors] => Array 
          (
          ) 

        ) 

      ) 

    ) 

[2] => stdClass Object 
    (
     [status] => failure 
     [response] => Array 
      (
       [0] => stdClass Object 
        (
         [ProId] => 11 
         [status] => failure 
         [errors] => Array 
          (
           [0] => stdClass Object 
            (
             [errorCode] => CONTENT_NOT_FOUND 
             [message] => Content not found. 
             [attributeName] => 
            ) 

          ) 

        ) 

       [1] => stdClass Object 
        (
         [ProId] => 12 
         [status] => failure 
         [errors] => Array 
          (
           [0] => stdClass Object 
            (
             [errorCode] => CONTENT_NOT_FOUND 
             [message] => Content not found. 
             [attributeName] => 
            ) 

          ) 

        ) 

       [2] => stdClass Object 
        (
         [ProId] => 13 
         [status] => failure 
         [errors] => Array 
          (
           [0] => stdClass Object 
            (
             [errorCode] => CONTENT_NOT_FOUND 
             [message] => Content not found. 
             [attributeName] => 
            ) 

          ) 

        ) 

       [3] => stdClass Object 
        (
         [ProId] => 14 
         [status] => updated 
         [errors] => Array 
          (
          ) 

        ) 

       [4] => stdClass Object 
        (
         [ProId] => 15 
         [status] => updated 
         [errors] => Array 
          (
          ) 

        ) 

       [5] => stdClass Object 
        (
         [ProId] => 16 
         [status] => updated 
         [errors] => Array 
          (
          ) 

        ) 

       [6] => stdClass Object 
        (
         [ProId] => 17 
         [status] => updated 
         [errors] => Array 
          (
          ) 

        ) 

       [7] => stdClass Object 
        (
         [ProId] => 18 
         [status] => updated 
         [errors] => Array 
          (
          ) 

        ) 

       [8] => stdClass Object 
        (
         [ProId] => 19 
         [status] => updated 
         [errors] => Array 
          (
          ) 

        ) 

       [9] => stdClass Object 
        (
         [ProId] => 20 
         [status] => updated 
         [errors] => Array 
          (
          ) 

        ) 

      ) 

    ) 

)

Я хочу, чтобы создать один CSV-файл с выше ответ в формате ниже .Please см прилагается изображение

enter image description here

Для достижения этого результата я использую этот код:

$fp = fopen('output.csv',"w"); 
        $rowcounts=0; 
        $resultResponse=$listing->response; 
         while($rowcounts<$inputfielscount) { 
          $result=$resultResponse[$rowcounts]; 
          $resultProId=$result->ProId; 
          $resultStatus=$result->status; 
          $resultErrors=$result->errors; 
          $errorMsgArray=$resultErrors[0]; 
          $ErrorsMessage=$errorMsgArray->message; 
          $ErrorCode=$errorMsgArray->errorCode; 

           if($resultStatus=='failure'){ 
              $list = array ($resultProId,$resultStatus,$ErrorCode,$ErrorsMessage); 
           }else { 
              $list = array ($resultProId,$resultStatus,"successfully"); 
           } 
           fputcsv($fp,$list); 
           $rowcounts++; 
         } 

$ listing - массив ответов, с которым я уже особняк. Я не получаю желаемый результат в файле csv. Если у кого-то есть решение, поделитесь им.

+0

Вам также нужен -------- | форматирование на выходе? Также попробуйте указать, что вы получаете в настоящее время и что вы ожидаете отсюда. – Harshit

+0

In dont 'want ---- | это в выводе, это я использовал как значение, должен прийти в CSV-файл, как это. – Urvashi

ответ

0

Это, я думаю, запихнет его в плоский многодиапазонный массив, не слишком большой проблемой, чтобы затем получить его в csv.

foreach($array as $key => $value) { 

    if(isset($array[$key]) && count($array[$key]) > 0) { 

     foreach($array[$key] as $inner) { 

      $error = $inner['errors'][0]; 

      $new_array[] = array($inner->ProId,$inner->status,$error->errorCode,$error->message); 

     } 

    } 

} 
+0

Извините, понял, что это были объекты. а не элементы массива. Я обновил свой ответ. Если это не сработает, это не моя проблема. Если вы не знаете фразы типа «это не мое требование», это не полезно и оскорбительно. –

+0

Извините @richard за мои слова, я получил решение И да, я получил идею из вашего ответа. Я удалил свой комментарий. Спасибо еще раз. – Urvashi

+0

Все в порядке, я подумал, что это может быть потому, что этот английский не является вашим первым языком, но просто заботитесь при общении. –

 Смежные вопросы

  • Нет связанных вопросов^_^