Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите разбить одномерный массив на многомерный по определенным ключам.
 
 автор: aibolit   (16.10.2008 в 21:16)   письмо автору
 
 

перелистал форум вроде не нашел такого.

Имеется массив

Array 


    [title|3] => Текст
    [upd|3] => on 
    [autor|3] => user1 
    [title|2] => Текст 
    [day|2] => 5
    [autor|2] => user2 
    [upd|11] => on 
    [day|11] => 12
    [autor|11] => user3 

)

как его разбить и получить двумерный массив который содержит новые массивы

Array (
[3] => Array (
    [title|3] => Текст 
    [upd|3] => on 
    [autor|3] => user1
    )
[2] => Array (
    [title|2] => Текст 
    [day|2] => 5
    [autor|2] => user2
    )
[11] => Array ( 
    [upd|11] => on 
    [day|11] => 12
    [autor|11] => user3
    ) 
)


количество элементов в многомерном массиве может быть разное,
определяюшее значение для подстановки в новый массив это цифра в ключе после разделителя | , она же будет ключем для массива внутри двумерного массива.

  Ответить  
 
 автор: STEVER   (16.10.2008 в 21:42)   письмо автору
 
   для: aibolit   (16.10.2008 в 21:16)
 

ну и в чем сложность? включить мозг?

<?
foreach($ar as $k => $v)
$new_ar[current(next(explode('|',$k)))] [$k] = $v;
?>


как то так.

  Ответить  
 
 автор: aibolit   (16.10.2008 в 22:16)   письмо автору
 
   для: STEVER   (16.10.2008 в 21:42)
 

прежде чем комуто советовать включать мозг может попробуешь включить свой, или хотя бы проверять то что пишешь.

  Ответить  
 
 автор: aibolit   (17.10.2008 в 03:10)   письмо автору
 
   для: aibolit   (16.10.2008 в 21:16)
 

решил задачу - может кому то пригодиться

и может подскажет кто более рациональное решение???

<?
foreach ($_POST as $key=>$val)
{
    
$curr=explode("|",$key);
    if (
$curr[1]==$next[1])
    {
      
$mass[$curr[1]][$curr[0]]=$val;
    }
    else
    {
      
$mass[$curr[1]] = array($curr[0]=>$val);
    }
    
$next=explode("|",$key);
}
?>

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования