как преобразовать массив в формат строки - PullRequest
0 голосов
/ 05 августа 2011

У меня есть массив в формате

array () {["2011-07-29"] => 39 ["2011-07-30"] => 39 ["2011-07-31 "] => 39 [" 2011-08-01 "] => 40}

мне нужно преобразовать его в строковый формат, подобный этому (ниже приведен результат var_dump)

string (584) "[новая дата (2011, 07, 29), 39], [новая дата (2011, 07, 30), 39], [новая дата (2011, 07,31), 39], [new Date (2011, 08, 01), 40] "

кто-нибудь сталкивался с этим раньше, я застрял с этим сейчас ...

Ответы [ 4 ]

1 голос
/ 05 августа 2011
<?php
    $a = Array("2011-07-29" => 39, "2011-07-30"=> 39, "2011-07-31"=> 39, "2011-08-01"=> 40);
    $sa = array();
    foreach($a as $k => $v){
        $sa[] = "[new Date(".preg_replace('/-/',', ',$k)."),$v]";
    }
    $s = implode(', ',$sa);
    var_dump( $s );
?>

Редактировать: Улучшено, чтобы соответствовать лучшим возможностям ответа @ Альваро (практически идентично - и ответили первым), но с более простым построением строк (я считаю sprintf ненужным слоем абстракции)

<?php
    $input = array(
        '2011-07-29' => 39,
        '2011-07-30' => 39,
        '2011-07-31' => 39,
        '2011-08-01' => 40,
    );
    $aux = array();
    foreach($input as $date => $number){
        $aux[] = "[new Date(" . str_replace('-',', ',$date) . "),$number]";
    }
    $output = implode(', ', $aux);
    var_dump($input, $output);
?>
0 голосов
/ 05 августа 2011

Хотя это не прямой путь.Попробуйте использовать json_encode() в вашем массиве и помассируйте вывод.

0 голосов
/ 05 августа 2011

Самый простой способ, которым я могу придумать:

<?php

$input = array(
    '2011-07-29' => 39,
    '2011-07-30' => 39,
    '2011-07-31' => 39,
    '2011-08-01' => 40,
);

$aux = array();

foreach($input as $date => $number){
    $aux[] = sprintf('[new Date(%s),%d]', str_replace('-', ',', $date), $number);
}

$output = implode(', ', $aux);

var_dump($input, $output);
0 голосов
/ 05 августа 2011

Сначала вам нужно зациклить массив и проанализировать каждую дату, используя parse_date. Если у вас есть даты в удобном для вас формате, вы можете создать новую строку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...