function testToFlatArray() { $arr = array(1, 'apple' => 2, 'basket' => array('chips' => 3, 'nachoes' => 4)); lmbArrayHelper::toFlatArray($arr, $result1); $this->assertEqual($result1, array(1, 'apple' => 2, 'basket[chips]' => 3, 'basket[nachoes]' => 4)); lmbArrayHelper::toFlatArray($arr, $result2, '_'); $this->assertEqual($result2, array('_[0]' => 1, '_[apple]' => 2, '_[basket][chips]' => 3, '_[basket][nachoes]' => 4)); }
protected function _serializeHttpAttributes() { $uri = $this->http_request->getUri(); if (!($query = $uri->getQueryItems())) { return ''; } $flat = array(); lmbArrayHelper::toFlatArray($query, $flat); ksort($flat); return serialize($flat); }
function toString() { $flat = array(); $query = ''; lmbArrayHelper::toFlatArray($this->__request, $flat); foreach ($flat as $key => $value) { if (is_object($value)) { continue; } $query .= $key . '=' . urlencode($value) . '&'; } //TODO: this is quite ugly but it works... $uri = clone $this->__uri; $uri->removeQueryItems(); return rtrim($uri->toString() . '?' . rtrim($query, '&'), '?'); }
static function toFlatArray($array, &$result, $prefix = '') { foreach ($array as $key => $value) { $string_key = $prefix ? '[' . $key . ']' : $key; if (is_array($value)) { lmbArrayHelper::toFlatArray($value, $result, $prefix . $string_key); } else { $result[$prefix . $string_key] = $value; } } }
/** * Returns flat query_string * */ function getQueryString() { $query_string = ''; $query_items = array(); $flat_array = array(); lmbArrayHelper::toFlatArray($this->query_items, $flat_array); ksort($flat_array); foreach ($flat_array as $key => $value) { if ($value != '' || is_null($value)) { $query_items[] = $key . '=' . urlencode($value); } else { $query_items[] = $key; } } if ($query_items) { $query_string = implode('&', $query_items); } return $query_string; }