循环部分多维数组

Gab*_*lli 0 php arrays session multidimensional-array

我在PHP中做了一个多步骤表单,将数据存储在一个多维数组中(我在$_SESSION数组中创建了一个数组并将其命名为$_SESSION['inserimento'])

然后我有$_SESSION['inserimento']['name'],$_SESSION['inserimento']['city']......

我想strtolower()在将它们添加到mysql之前将该函数应用于所有值

我试过这段代码,但它不起作用

foreach ($_SESSION['inserimento'] as $k=>$v){
    $v=strtolower($v);
}
Run Code Online (Sandbox Code Playgroud)

我想我误解了如何在多维数组上进行循环.

Lep*_*eus 6

使用array_map()将函数应用于数组中的所有元素:

$_SESSION['inserimento'] = array_map('strtolower', $_SESSION['inserimento']);
Run Code Online (Sandbox Code Playgroud)

或者常规的foreach循环(循环内部$v是副本,因此您需要影响原始数组):

foreach ($_SESSION['inserimento'] as $k => $v) {
  $_SESSION['inserimento'][$k] = strtolower($v);
}
Run Code Online (Sandbox Code Playgroud)

或者带参考的foreach循环($v不再是副本,它是对原始元素的引用):

foreach ($_SESSION['inserimento'] as &$v) {
  $v = strtolower($v);
}
unset($v); // remember to unset, or $v will still be a reference to the last element after the loop
Run Code Online (Sandbox Code Playgroud)