Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php中内爆时参数无效_Php_Arrays - Fatal编程技术网

在php中内爆时参数无效

在php中内爆时参数无效,php,arrays,Php,Arrays,运行以下代码时,收到无效参数错误。我正在尝试更改$info数组中一行的值,然后将其内爆,内爆其父数组,然后将整个shebang保存回它所在的位置 $rowpre = $_GET['row']; $newfieldvalue = $_GET['nfv']; $row = --$rowpre; $data = file_get_contents("temp.php"); $csvpre = explode("###", $data); $i = 0; foreach ( $csvpre AS

运行以下代码时,收到无效参数错误。我正在尝试更改
$info
数组中一行的值,然后将其内爆,内爆其父数组,然后将整个shebang保存回它所在的位置

$rowpre = $_GET['row'];
$newfieldvalue = $_GET['nfv'];
$row = --$rowpre;
$data = file_get_contents("temp.php");
$csvpre = explode("###", $data);
$i = 0;
    foreach ( $csvpre AS $key => $value){
        $i++;
        if($i = $row){
            $info = explode("%%", $value);
            $info[$target] = $newfieldvalue;

            $presave = implode("%%", $info);    
        }           
    }


$save = implode("###", $presave);
$fh = fopen("temp.php", 'w') or die("can't open file");
fwrite($fh, $save);
fclose($fh);
以下更新

$rowpre = $_GET['row'];
$newfieldvalue = $_GET['nfv'];
$target = $_GET['target'];
$row = --$rowpre;
$data = file_get_contents("temp.php");
$csvpre = explode("###", $data);
$i = 0;
    foreach ( $csvpre AS $key => $value){
        $i++;
        if($i == $row){
            $info = explode("%%", $value);
            $info[$target] = $newfieldvalue;

            $csvpre[$key] = implode("%%", $info);  
        }           
    }


$save = implode("###", $csvpre);
$fh = fopen("temp.php", 'w') or die("can't open file");
fwrite($fh, $save);
fclose($fh);

目标是所选行中我希望用newfieldvalue数据更新的字段。

$presave
包含最后处理的行(即字符串),而
内爆
需要一个数组。要将行存储回原始数组,请更改:

$presave = implode("%%", $info); 
致:

要将整个CSV数组转换为字符串,请更改:

$save = implode("###", $presave);
致:

还有一个问题:

if($i = $row){
应该是:

if($i == $row){

因为您希望比较变量,所以不分配
$i

$presave
包含最后处理的行(即字符串),而
内爆
需要一个数组。要将行存储回原始数组,请更改:

$presave = implode("%%", $info); 
致:

要将整个CSV数组转换为字符串,请更改:

$save = implode("###", $presave);
致:

还有一个问题:

if($i = $row){
应该是:

if($i == $row){
因为您希望比较变量,而不是分配
$i

$save=内爆(“###,$pressave”)

此时,
$presave
是一个字符串,应该是一个用于内爆的数组。创建一个数组,在其中推送$presave值,并内爆该值

$save=内爆(“###,$pressave”)


此时,
$presave
是一个字符串,应该是一个用于内爆的数组。创建一个数组,在其中推送$presave值,并内爆该值。

它运行时没有错误,但似乎没有改变数组中$info[$target]=$newfieldvalue;其中定义了
$target
。尝试打印循环中的
$csvpre
数组,查看是否正在修改它。它运行时没有错误,但似乎没有更改数组中$info[$target]=$newfieldvalue处的行;其中定义了
$target
。尝试打印循环中的
csvpre
数组,查看是否正在修改它。