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

Форум PHP

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

 

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

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

тема: преобразование массива
 
 автор: Zezst   (18.11.2014 в 03:36)   письмо автору
 
 

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

array('key1','key2','key3')

нужно его превратить в

array('key1' => array('key2' => array('key3' => '')))

  Ответить  
 
 автор: Igorek   (18.11.2014 в 07:33)   письмо автору
 
   для: Zezst   (18.11.2014 в 03:36)
 

<?php

$a 
= ['key1','key2','key3'];

$a array_reduce(array_reverse($a), function($r$i) {return $r = [$i => $r ?: ''];});

var_dump($a);

  Ответить  
 
 автор: Zezst   (18.11.2014 в 07:56)   письмо автору
 
   для: Igorek   (18.11.2014 в 07:33)
 

return $r = [$i => $r ?: '']

спасибо.
огромное спасибо.
и может еще и с таким поможете ?
имеем

array('key1' => 'val1','key2' => 'val2','key3' => 'val3')

хотим

array('val1' => array('key1' => array('val2' => array('key2' => array('val3' => array('key3' => '')))))) 

  Ответить  
 
 автор: Igorek   (18.11.2014 в 09:43)   письмо автору
 
   для: Zezst   (18.11.2014 в 07:56)
 

<?php
$a2 
= ['key1' => 'val1''key2' => 'val2''key3' => 'val3'];

$r '';
foreach (
array_reverse($a2) as $key => $val) {
    
$r = [$val => [$key => $r]];
}
print_r($r);


для первого случая небольшой фикс - array_reduce принимает третий параметр в качестве начального значения:
<?php
$a 
= ['key1''key2''key3'];

$a array_reduce(array_reverse($a), function ($r$i) {return $r = [$i => $r];}, '');

  Ответить  
 
 автор: Zezst   (18.11.2014 в 12:08)   письмо автору
 
   для: Igorek   (18.11.2014 в 09:43)
 

и еще раз СПАСИБО.

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

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