array_map - "Argument passed must be of the type array, string given" 错误
array_map - "Argument passed must be of the type array, string given" error
我不确定为什么以下内容不起作用。我收到上述错误(主题):
$array = array (); //something goes in here
function del_space(array $a){
foreach($a as $key => $value){
preg_replace("/; +/", "", $value);
}
}
$no_space = array_map("del_space", $array);
array_map()
为您循环 $array
,因为我假设 $array
中的每个项目都不是数组对象,但 del_space()
需要一个数组传递给它。
听起来你有:
$array = array( 'some item' ); // Fails
但是你需要这样的东西:
$array = array( array( 'some item' ) ); // Success
如果您想使用 array_map()
你的函数del_space
接受一个数组作为参数。 array_map
获取数组(第二个参数)本身的每个元素,并将其发送到回调(第一个参数)。所以除非你有一个数组数组,否则这是行不通的。您的示例应如下所示:
$array = ['lblab; la'];
function del_space($a){
return preg_replace("/; +/", "", $a);
}
$no_space = array_map("del_space", $array);
print_r($no_space);
给出输出:
Array ( [0] => lblab;la)
如果你想传递一个数组,那么输入应该是这样的:
$array = [
['blabla; bla'],
['blabla2; bla2'],
];
function del_space(array $a){
foreach($a as $key => $value){
$a[$key] = preg_replace("/; +/", "", $value);
}
return $a;
}
$no_space = array_map("del_space", $array);
print_r($no_space);
输出:
Array ( [0] => Array ( [0] => blablabla ) [1] => Array ( [0] => blabla2bla2 ) )
我不确定为什么以下内容不起作用。我收到上述错误(主题):
$array = array (); //something goes in here
function del_space(array $a){
foreach($a as $key => $value){
preg_replace("/; +/", "", $value);
}
}
$no_space = array_map("del_space", $array);
array_map()
为您循环 $array
,因为我假设 $array
中的每个项目都不是数组对象,但 del_space()
需要一个数组传递给它。
听起来你有:
$array = array( 'some item' ); // Fails
但是你需要这样的东西:
$array = array( array( 'some item' ) ); // Success
如果您想使用 array_map()
你的函数del_space
接受一个数组作为参数。 array_map
获取数组(第二个参数)本身的每个元素,并将其发送到回调(第一个参数)。所以除非你有一个数组数组,否则这是行不通的。您的示例应如下所示:
$array = ['lblab; la'];
function del_space($a){
return preg_replace("/; +/", "", $a);
}
$no_space = array_map("del_space", $array);
print_r($no_space);
给出输出:
Array ( [0] => lblab;la)
如果你想传递一个数组,那么输入应该是这样的:
$array = [
['blabla; bla'],
['blabla2; bla2'],
];
function del_space(array $a){
foreach($a as $key => $value){
$a[$key] = preg_replace("/; +/", "", $value);
}
return $a;
}
$no_space = array_map("del_space", $array);
print_r($no_space);
输出:
Array ( [0] => Array ( [0] => blablabla ) [1] => Array ( [0] => blabla2bla2 ) )