我有一个包含一些需要修改的文本字符串的多维数组。我最初的想法是递归地迭代它并进行编辑,但我已经意识到在内部调用函数必须打破引用,我无法看到解决方法。
function mysqlifyArray($array)
{
global $connection;
foreach ($array as &$item)
{
if (is_string($item))
{
echo $item;
$item = mysqli_real_escape_string($connection, $item);
echo $item.'<br>';
}
elseif (is_array($item))
{
$item = mysqlifyArray($item);
}
}
unset($item);
return $array;
}
答案 0 :(得分:1)
Set reference in your function declaration
function mysqlifyArray(&$array)
{
// ....
}
答案 1 :(得分:1)
或者,您可以使用内置的array_walk_recursive()
function mysqlify(&$value, $index) {
global $connection;
return $value = mysqli_real_escape_string($connection, $value);
}
function mysqlify_array(&$array) {
return array_walk_recursive($array, 'mysqlify');
}
答案 2 :(得分:0)
这可能会对您有所帮助:
function mysqlifyArray($array)
{
global $connection;
foreach ($array as $item)
{
if (is_string($item)) {
echo $item;
$item = mysqli_real_escape_string($connection, $item);
echo $item.'<br>';
} else if (is_array($item)) {
$item = mysqlifyArray($item);
}
unset($item);
}
return $array;
}
注意:我不确定为什么使用$ item变量的引用,而是可以在方法中使用引用变量。