将数组发送到array_map函数时出错

时间:2018-01-29 05:40:24

标签: php arrays

将数组发送到array_map函数时出错。因为该数组包含一个数组。

$arr = array();
$value=array(
    "result"=>$str,
    "rightAnswer"=>$arr,
    "tid"=>$topicId,
    "view"=>$view,
);

$value = array_map('utf8_encode', $value);

这显示错误,如

消息:utf8_encode()期望参数1为字符串,给定数组

2 个答案:

答案 0 :(得分:1)

传递给utf8_encode的

参数应该是一个字符串。希望下面的回调函数可以帮助您实现它。

function encode_data($val){
    if(is_array($val)){
        return $val = array_map('encode_data', $val);
    }else{
        return utf8_encode($val);
    }    
}

$value = array_map('encode_data', $value);
print_r($value);

答案 1 :(得分:-1)

Utf_encode()仅接受字符串参数,并且您正在发送数组参数

"rightAnswer"=>$arr

这就是为什么它会显示警告。

$arr = '';
$value=array(
    "result"=>$str,
    "rightAnswer"=>$arr,
    "tid"=>$topicId,
    "view"=>$view,
);

$value = array_map('utf8_encode', $value);

它会正常工作。我刚刚将$arr = ''改为字符串