0

PHPを使用してファイルを開くと、次のようになります。

var people = {
vikram: { time1: [ '8:00am', '8:20am', '8:40am', '9:00am',  ], time2: [ '10:20am', '10:40am', '11:00am', '11:20am',  ], time3: [ '8:00am', '8:20am', '8:40am',  ], }};

削除しようとしている変数には時刻(例:午前8時)が含まれ、timeIndex(例:time1)がわかります。他の時間もそのままにしておきたいです。

たとえば、変数を8:40 amに設定した場合、作成される新しいファイルは次のようになります。

var people = {
vikram: { time1: [ '8:00am', '8:20am', '9:00am',  ], time2: [ '10:20am', '10:40am', '11:00am', '11:20am',  ], time3: [ '8:00am', '8:20am', '8:40am',  ], }};

どんな助けでもいただければ幸いです!

4

3 に答える 3

4

表示する形式は、JSON形式の文字列を表します。json_decode()関数を使用して文字列から配列を作成し、配列をループして、不要な要素をunset()することができます。

于 2012-04-30T06:47:42.307 に答える
0

これに使用できますpreg_replace()

<?php
$filename = 'yourfile.js';
$search = '8:40am';

$content = file_get_contents( $filename );

$pattern = '/(\s*time1:\s*\[.*)([\'"]' . 
           preg_quote($search) .
           '[\'"],?\s*)(.*\])/U';

$content = preg_replace( $pattern, '\1\3', $content ); 

file_put_contents( $filename, $content );
?>

これは、同様のトピックに関する最後の質問に答えたコード例の変更です。

于 2012-04-30T06:49:43.837 に答える
0

これが私がやった方法です。基本的に、私はjson_decodeを使用してjsonをphpオブジェクトに解析します。ただし、入力がphp用の整形式のjsonではないこともわかりました(例3を参照)。私のコードは見栄えがよく一般的ではありませんが、お役に立てば幸いです。

<?php
$json_data = '{
    "vikram": {
        "time1": ["8:00am", "8:20am", "8:40am", "9:00am"], 
        "time2": ["10:20am", "10:40am", "11:00am", "11:20am"], 
        "time3": ["8:00am", "8:20am", "8:40am"]
    }
}';


$obj = json_decode($json_data);

//var_dump($obj->vikram);

$value = "8:40am";
$time1 = "time1";

$delete_item;

foreach($obj->vikram as $name=>$node)
{
    foreach($node as $i => $time)
    {
        if($time==$value && $name=$time1)
        {
            $delete_item = $i;
        }
    }
}

unset($obj->vikram->time1[$delete_item]);
var_dump($obj->vikram);
于 2012-04-30T07:34:16.433 に答える