使用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:00),我将知道timeIndex(例如time1)。我还希望保持所有其他时间不变。
例如,如果我将变量设置为上午8:40,我希望创建的新文件如下所示:
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', ], }};
任何帮助将不胜感激!
答案 0 :(得分:4)
您显示的格式表示JSON格式的字符串。你可以使用json_decode()函数从string中创建一个数组,然后循环遍历数组,只需取消设置()你不需要的元素。
答案 1 :(得分: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 );
?>
这是我回答your last question on a similar topic的代码示例的修改。
答案 2 :(得分:0)
这是我做的方式。基本上,我使用json_decode将你的json解析为php对象。但是,我还发现你的输入不是一个格式良好的json for php(See example 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);