如何在循环中访问数组中的PHP值,例如[“ val1”,“ val2”,“ val3”]

时间:2018-07-31 06:43:40

标签: php arrays for-loop each brackets

我在从单个方括号数组中获取值时遇到问题。得到这个

//$_POST["values"] == ["val1","val2","val3"]
$val = $_POST["values"]; 

我想要类似的东西

foreach( $val as $value ) {
   $valget = $value;
   //need to get all values like $valget = "val1";
}

非常感谢您!

更新:

我想得到什么? Values passed as $_POST from filemanager

我要如何继续? I wnat for each every result of post save into database

并且仍然将所有内容作为数组保存到数据库中的单行中,我需要为每条记录添加新行。

Database

2 个答案:

答案 0 :(得分:2)

好吧,这是您所有$_POST值的变量:

$val = $_POST["values"]; 

这就是你要做的:

foreach($val as $value) {
    $valget = $value;
}

因此,每次$valget都会被下一个$value擦除

// First loop : $valget == "val1"
// Second loop : $valget == "val2"
// Third loop : $valget == "val3"

因此,如果最后执行echo $valget;,您将得到最后的结果:$valget == "val3"

如果要获取每个,请采取以下解决方案:

1 /回显每个值:

foreach($val as $value) {
    echo $value . "<br>";
}

这样您将输出

val1
val2
val3

2 /不做任何事情,因为$val已经是一个具有所有值的数组:

$val = $_POST["values"];

$val = array(
    0 => "val1",
    1 => "val2",
    2 => "val3"
);

因此您可以使用:

访问每个值
$val[0] == "val1";
$val[1] == "val2";
$val[2] == "val3";

3 /如果要以其他方式找到它们,请更改密钥:

// New array
$valget = array();

// Create a new index
$index = 1;

foreach($val as $value) {
    $valget[$index] = $value;
    $index++;
}

这样,您将:

$valget[1] == "val1";
$valget[2] == "val2";
$valget[3] == "val3";

答案 1 :(得分:0)

确定了! 现在,我想与世界分享答案,因为可能会有其他人将面临与我同样的问题。

在我尝试了所有的工作之后,是:

    $numbers = json_decode($_POST['file_img']); //post images from <form> and decode array

    foreach($numbers as $index => &$number){  
        ++$number; # we are incrementing the original value
        echo 'Inside of the array = ', $index, ': ', $number, '<br />'; # this is showing the original value

so now $number = "every single image";
Now save to db or whatever..
}

在这里找到了这个答案:https://stackoverflow.com/a/47266239/4928816

因此,如果有人需要根据我的需要将变量从独立的响应文件管理器传递到PHP(http://www.responsivefilemanager.com/demo.php),则可以使用此代码来实现。

感谢所有试图帮助我的人!