단순 배열과 중첩 배열 모두에서 작동하는 함수를 만들려고합니다. 지금까지,이 함수는 다음과 같습니다단순 배열과 중첩 배열에 대해 작동하는 PHP 함수를 만듭니다.
function fnPrepareDataForBrowser($values)
{
$values = array_map('htmlspecialchars', $values);
return $values;
}
그것은 간단한 배열을 위해 잘 작동 - 예를 들면 :
Array
(
[Item ID] => 25469
[Item Desc] => spiral nails, 1"
[Standard Item] => yes
[Entry UOM] => lb
)
그러나 메시지 "경고와 함께 실패 반드시 htmlspecialchars() 매개 변수 1이 될 것으로 예상 문자열, 배열은 중첩 배열은 "... 주어진 - 예를 들면 : 간단 배열과 중첩 배열 모두 작동 그래서 수정이 기능을해야한다
Array
(
[0] => Array
(
[Item ID] => 25469
[Item Description] => spiral nails, 1"
[Standard Item] => yes
[Entry UOM] => lb
)
[1] => Array
(
[Item ID] => 25470
[Item Description] => finishing screws, 2.5"
[Standard Item] => no
[Entry UOM] => lb
)
[2] => Array
(
[Item ID] => 25576
[Item Description] => paint brush, 3"
[Standard Item] => no
[Entry UOM] => each
)
)
?
<?php
/**
* Applies callback function recursively to every element of the given array.
*
* If the array contains inner arrays or objects, the callback is also applied
* to these.
*
* Caution: If $arrayOfObject is an object, only public members are processed.
*
* @param callback $func
* @param array|object $array
*
* @return array
*/
public static function array_map_recursive($func, $arrayOrObject)
{
$array = is_array($arrayOrObject) ? $arrayOrObject : get_object_vars($arrayOrObject);
foreach ($array as $key => $val) {
$array[$key] = is_array($val) || is_object($val)
? self::array_map_recursive($func, $val)
: call_user_func($func, $val);
}
return $array;
}
?>
+1 좋은 대답을 생성합니다! – cgTag