繁体   English   中英

通过索引,增量将元素添加到数组中?

[英]Adding elements to arrays via indexes, increments?

嘿,我偶然发现的东西可以为我节省很多工作,前提是没有副作用,那就是说你有这个文件

0
0
0

并且您需要向其添加数字,就像计数一样,但是您还想要修改字符串中的特定字符,而不是添加它们……。但是您想要添加到末尾而不是修改任何不存在的字符索引...

因此,如果您使用上面的这些行之一,并在其上使用str_split,然后尝试通过编号索引添加某些内容,似乎不会感到困惑!

就像我要修改该文件第2行的第20个索引。 由于没有第20个索引,它将自动将元素添加到数组的末尾。

我可以只是放下这张幻灯片,还是冒险这样做? 就像我不知道的副作用...

男人,如果我有任何问题要解决,因为他们不明白我在问什么....:P

抱歉,但我想不出其他措辞。

好的,这是一些代码

$change_str = str_split($array_change[$list_num]);
UltraDB($change_str, "Change String BEFORE");
$change_str[20] = '5';
$array_change[$list_num] = implode('', $change_str);
foreach($array_change as $v){
file_put_contents("file.txt", $v . "\n", FILE_APPEND);
}
UltraDB($array_change, "File is now.");

UltraDB只是我的调试功能,结合了var_dump回显和换行符

编辑:好吧,只是想如何更好地措辞我的问题:当str_split制成的数组中不存在索引,但是您想添加该数组的某个索引,如果该索引尚不存在,是否正常只是为了将您要添加的内容添加到结束索引中?

我不太了解它,但是这是如何安全地编辑第20行,而无需仅通过行号获得任何需要的值:

$file = file('file.txt');
$file[19] = $file[19]++; // the index starts with so for line 20 we take index 19

// and saving it
file_put_contents('file.txt', implode(PHP_EOL, $file));

以上令人困惑,但我认为这就是您要问的。 是未经测试的,是的...无论如何...

$d=' '; //delimiter

$x=20;  //how many lines in
$y=10;  //how many values out
$z=4;   //value to insert at X/Y

$file = file('file.txt');
$tmp = explode($d, $file[$x]);

if($file[$y]) {
    $file[$y]=$z;
} else {
    $file[]=$z;
}

foreach($file as &$line){
    $line = implode($d, $line);
}

file_put_contents('file.txt', implode(PHP_EOL, $file));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM