1

問題があります。以下の結果があり、同じタイムスタンプを削除したいと思います。

サンプル結果:

Array
(
[0] => [1341100800000, 0]
[1] => [1341100800000,85]
[2] => [1343779200000,54]
[3] => [1343779200000, 0]
)

期待される出力

Array
(
[0] => [1341100800000,85]
[1] => [1343779200000,54]
)

値を取得するためにexplode、次にsubstr関数を使用することを考えています。これが私がこれまでに思いついたものです。

$explode = array();
    foreach($string_format as $key => $value) {
        $explode[] = explode(',', substr($value, 1));
        if((isset($explode[0]) && $explode[0][0] == $explode[1][0])) {
            unset($explode[0]);
        }
        //print_r($explode);

    }
4

3 に答える 3

2

脚本:

foreach($string_format as $key => $value) {
    $explode = explode(',', $value);
    $unique[$explode[0]] = $value;
}

入力:

$string_format = array('0' => '1341100800000, 0',
'1' => '1341100800000,85',
'2' => '1343779200000,54',
'3' => '1343779200000, 0');

出力:

$unique =
Array
(
    [1341100800000] => 1341100800000,85
    [1343779200000] => 1343779200000, 0
)
于 2012-11-21T07:34:00.670 に答える
2

これはhttp://us2.php.net/manual/en/function.array-unique.phpの良い使い方ではないでしょうか

于 2012-11-21T07:45:54.227 に答える
0

これはうまくいくはずです:)

    $explode = array();
    $timestmp = array();

   foreach($string_format as $key => $value) {
        $explode[$key] = explode(',', substr($value, 1));

        if( in_array( $explode[$key][0], $timestmp)) {
            unset ($explode[$key]);
        } else {
             $timestmp[]= $explode[$key][0];
        }
    }
于 2012-11-21T07:34:27.353 に答える