Строка:
{12:Иванов Иван Иванович},{19:Милевский Артём Борисович},
Нужно: в массиве ключ=>значение (12=>Иванов Иван Иванович и тд).
Пар в фигурных скобках может быть несколько.
Убираю разделитель - запятую.
пишу так
list ($id, $name) = split ('[,.-]', $_COOKIE["childs"]);
echo "id = ".$id." name = ".$name."";
ругается
A PHP Error was encountered
Severity: Notice
Message: Undefined offset: 1
Filename: callcenter/musers.php
Line Number: 422
подскажите))
Спустя 32 минуты, 51 секунда (30.08.2010 - 17:29) twin написал(а):
А сериализацию не проще было заюзать?
Спустя 17 часов, 55 минут, 48 секунд (31.08.2010 - 11:25) Nikitian написал(а):
$tmp=$tmp2=$arr=array();
$str='{12:Иванов Иван Иванович},{19:Милевский Артём Борисович},';
$tmp=explode(',',$str);
if(is_array($tmp) && sizeof($tmp)>0){
foreach($tmp as $item){
if(strlen($item)<3)continue;
$tmp2=explode(':',substr($item,1,strlen($item)-2));
if(is_array($tmp2) && sizeof($tmp2)==2)
$arr[$tmp2[0]]=$tmp2[1];
}
}
print_r($arr);
Для utf-8 использовать надо строковые функции семейства mb_*
Спустя 53 минуты, 22 секунды (31.08.2010 - 12:19) maccamset написал(а):
сделал так:
$_COOKIE["childs"] = '{12:Иванов Иван Иванович},{19:Милевский Артём Борисович},';
беру только $name[0] - ид, фио ненадо уже.
Мой метод работает, но, если есть в нём проблемы, подскажите.
Спасибо за ответы.twin пробывал, чёт не вышло. Пока так устроит
$_COOKIE["childs"] = '{12:Иванов Иван Иванович},{19:Милевский Артём Борисович},';
$str_exp = explode(",", $_COOKIE["childs"]);
$childsArray = array();
foreach ($str_exp as $id => $name){
if($name != null){
$rep = array("{", "}");
$name = str_replace($rep, "", $name);
$name = explode(":", $name);
$childsArray[] = $name[0];
}
}
беру только $name[0] - ид, фио ненадо уже.
Мой метод работает, но, если есть в нём проблемы, подскажите.
Спасибо за ответы.twin пробывал, чёт не вышло. Пока так устроит
Спустя 3 часа, 18 минут, 8 секунд (31.08.2010 - 15:37) FatCat написал(а):
Цитата (twin @ 30.08.2010 - 18:29) |
сериализацию не проще было заюзать? |
Глючит она на больших массивах. Несколько раз налетал, поленился разбираться, забил, пишу в текст с нужными разделителями и бью эксплодами.