/**
* Render a dump for an array
*
* @param mixed $data
* @param string $name
* @access private
* @static
*/
private static function _array($data, $name)
{
$config_sort = Krumo::_config('sorting', 'sort_arrays', true);
// If the sort is enabled in the config (default = yes) and the array is assoc (non-numeric)
if (sizeof($data) > 1 && $config_sort && Krumo::is_assoc($data)) {
// Copy the array to a temp variable and sort it
$new = $data;
ksort($new);
// If the sorted array is the same as the old don't sort it
if ($new === $data) {
$sort = 0;
} else {
$data = $new;
$sort = 1;
}
} else {
$sort = 0;
}
$childCount = count($data);
$collapsed = Krumo::_isCollapsed(self::$_level, count($data));
// Setup the CSS classes depending on how many children there are
if ($childCount > 0 && $collapsed) {
$elementClasses = ' krumo-expand';
} elseif ($childCount > 0) {
$elementClasses = ' krumo-expand krumo-opened';
} else {
$elementClasses = '';
}
if (count($data) > 1 || count($data) == 0) {
$plural = 's';
} else {
$plural = '';
}
print "<li class=\"krumo-child\">";
print "<div class=\"krumo-element {$elementClasses}\"";
// If there is more than one, make a dropdown
if (count($data) > 0) {
print "onClick=\"krumo.toggle(this);\"";
}
print "onMouseOver=\"krumo.over(this);\" onMouseOut=\"krumo.out(this);\">";
print "<a class=\"krumo-name\">{$name}</a> <em class=\"krumo-type\">Array(<strong class=\"krumo-array-length\">";
print count($data) . "</strong>)</em>";
if (count($data) > 0) {
print " …";
}
if ($sort) {
$title = "Array has been sorted prior to display. This is configurable in krumo.ini.";
print " - <span title=\"{$title}\"><strong class=\"krumo-sorted\">Sorted</strong></span>";
}
// callback
if (is_callable($data)) {
$_ = array_values($data);
print "<span class=\"krumo-callback\"> |";
print " (<em class=\"krumo-type\">Callback</em>) <strong class=\"krumo-string\">";
if (!is_object($_[0])) {
echo htmlSpecialChars($_[0]);
} else {
echo htmlSpecialChars(get_class($_[0])) . "::";
}
echo htmlSpecialChars($_[1]) . "()</strong></span>";
}
print "</div>";
if (count($data)) {
Krumo::_vars($data);
}
print "</li>";
}