public static function arrayToReadableString(array $elements) { $buf = ''; $is_assoc = ArrayUtil::isAssoc($elements); $length = count($elements); $index = 0; foreach ($elements as $key => $element) { if (is_object($element)) { $element_as_string = self::objectToReadableString($element); } else { if (is_array($element)) { $element_as_string = self::arrayToReadableString($element); } else { $element_as_string = (string) $element; } } if ($index !== $length - 1) { $element_as_string .= ', '; } if ($is_assoc) { $buf .= "{$key} => {$element_as_string}"; } else { $buf .= $element_as_string; } $index++; } return 'Array(' . $buf . ')'; }
/** * @param ContactWebForm $contactWebForm * @return array of rules for custom required attributes */ public static function getCustomRequiredFields(ContactWebForm $contactWebForm) { $contactWebFormAttributes = unserialize($contactWebForm->serializedData); $customRequiredFields = array(); if (ArrayUtil::isAssoc($contactWebFormAttributes)) { foreach ($contactWebFormAttributes as $attributeId => $attributeData) { if (isset($attributeData['required']) && $attributeData['required'] == true) { $customRequiredFields[] = $attributeId; } } } return $customRequiredFields; }
/** * Completes arguments array by default values that were not passed, but set at declaration * * @param string $method The name of a method * @param array $arguments The list of arguments */ public function completeArguments($method, array &$arguments) { if (ArrayUtil::isAssoc($arguments)) { $result = []; $refMethod = $this->getMethod($method); $params = $refMethod->getParameters(); foreach ($params as $param) { $hasValue = isset($arguments[$param->name]) || array_key_exists($param->name, $arguments); if (!$hasValue && $param->isOptional() && !empty($arguments)) { $result[$param->name] = $param->getDefaultValue(); } elseif ($hasValue) { $result[$param->name] = $arguments[$param->name]; } unset($arguments[$param->name]); } $arguments = $result; } }
public function testIsAssoc() { $this->assertTrue(ArrayUtil::isAssoc(array('a' => 1, 'b' => 2))); $this->assertFalse(ArrayUtil::isAssoc(array('a', 'b', 'c'))); }