если бы Вы просто хотите часть между http://, и первая наклонная черта
string url = Request.Url.Host;
возвратилась бы, stackoverflow.com, если названо от этой страницы
Вы можете решить проблему, используя массив для первого элемента («2e»):
$arr = array();
$arr['a'][] = '2e';
$arr['a'][] = '45';
$arr['a'][] = 'gt';
print_r($arr);
Возможны три ситуации:
Итак, в коде:
function appendThings(/* map[string,mixed] */ $array, /* string */ $key, /* string */ $value) {
if (!isset($array[$key]))
$array[$key] = $value;
else if (is_array($array[$key]))
$array[$key][] = $value;
else
$array[$key] = array($array[$key], $value);
return $array;
}
Сложен только последний случай: если это не массив тем не менее, вам нужно будет составить один, используя текущее значение плюс новое.
function update_keypair($arr, $key, $val)
{
if(empty($arr[$key])) $arr[$key] = array($val);
else $arr[$key][] = $val;
}
делает именно то, что вы хотите.
Вам нужно написать функцию, которая это сделает. Или инициализируйте свой первый элемент как массив и используйте функцию array_push для добавления новых элементов.
$a = array('2e');
array_push($a, '45');
array_push($a, 'gt');
if (isset($array[$key]) {
if (!is_array($array[$key]))
$array[$key] = (array)$array[$key];
$array[$key][] = $new_value;
} else {
$array[$key] = $new_value;
}
Что-то в этом роде? Вы, безусловно, можете упростить это, добавив первое значение в виде одноэлементного массива или используя тернарные операторы, но в любом случае вам понадобится специальная функция для выполнения этой работы.
Строго массив:
$arr['a']=(is_array($arr['a'])? '2e' : array_merge(Array('2e'),$arr['a']));
Строка с разделителями:
$arr['a'].='2e'.'/'; // '/' is used as a separator in here.
если вам нужна строка в виде массива, просто выполните $ arr ['a'] = explode ("/", $ arr ['a']);
оба метода уродливы ... вы должны попробовать, как предложил Флориан, использовать всю переменную как массив.
Другой метод может заключаться в использовании интерфейса в PHp и построить что-то, что использует интерфейсы Iterator и ArrayAccess. ( http://us3.php.net/manual/en/class.iterator.php , http://us3.php.net/manual/en/class.arrayaccess.php )
Попробуйте это
$key="a";
$value="b";
$array=array();
if(!array_key_exists($key,$array)) $array[$key]=$value;
elseif(is_array($array[$key]))$array[$key][]=$value;
else $array[$key]=array($array[$key],$value);