我有这行代码:
$roomservicesids = array_map(function($v){ return $v['serviceID'];}, $roomsservices);
它在我有PHP>5.3的服务器上运行得很好。在另一台服务器上,我有PHP<5.3,它不起作用。我正试图这样重写:
$roomservicesids = create_function('$v', 'return $v["serviceID"];,$roomsservices');
foreach ($services as $key1=>$value){
if(in_array($value['serviceID'], $roomservicesids)){ //error is in this line
echo "<input type='checkbox' name='services[]' id= '".$value['serviceID']."' value='" .$value['serviceID'] ."' checked = 'checked' class='zcheckbox' />";
}else{
echo "<input type='checkbox' name='services[]' id= '".$value['serviceID']."' value='" .$value['serviceID'] ."' class='zcheckbox' />";
}
echo "<label>" .$value['serviceName']. "</label>";
}
但我得到一个错误,说:
Message: in_array() [function.in-array]: Wrong datatype for second argument
Line Number: 104
任何帮助都将不胜感激。
$roomservicesids = array_map(function($v){ return $v['serviceID'];}, $roomsservices);
这是一种获取每个数组元素的CCD_ 1的紧凑方法。你可以用这样一个显式循环来完成:
$roomservicesids = array();
foreach ($roomsservices as $service) {
$roomservicesids[] = $service['serviceID'];
}