Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Помогите разобраться с массивом
Форумы портала PHP.SU » » Хранение данных, их вывод и обработка » Помогите разобраться с массивом

Страниц (1): [1]
 

1. thooz - 08 Ноября, 2013 - 14:44:37 - перейти к сообщению
На выходе имеется вот такой массив :

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. (
  3.     [0] => Array
  4.         (
  5.             [id] => 53
  6.             [section] => 1
  7.             [parent_id] => 0
  8.             [name] => parent
  9.         )
  10.  
  11.     [1] => Array
  12.         (
  13.             [id] => 54
  14.             [section] => 1
  15.             [parent_id] => 53
  16.             [name] => parent-2
  17.         )
  18.  
  19.     [2] => Array
  20.         (
  21.             [id] => 66
  22.             [section] => 1
  23.             [parent_id] => 53
  24.             [name] => parent3
  25.         )
  26.  
  27.     [3] => Array
  28.         (
  29.             [id] => 67
  30.             [section] => 1
  31.             [parent_id] => 53
  32.             [name] => parent4
  33.         )
  34.  
  35.     [4] => Array
  36.         (
  37.             [id] => 68
  38.             [section] => 1
  39.             [parent_id] => 53
  40.             [name] => parent-5
  41.         )
  42.  
  43.     [5] => Array
  44.         (
  45.             [id] => 51
  46.             [section] => 1
  47.             [parent_id] => 0
  48.             [name] => ssyilka
  49.         )
  50.  
  51.     [6] => Array
  52.         (
  53.             [id] => 1
  54.             [section] => 2
  55.             [parent_id] => 0
  56.             [name] => index
  57.         )
  58.  
  59.     [7] => Array
  60.         (
  61.             [id] => 5
  62.             [section] => 2
  63.             [parent_id] => 0
  64.             [name] => other
  65.         )
  66.  
  67.     [8] => Array
  68.         (
  69.             [id] => 4
  70.             [section] => 2
  71.             [parent_id] => 0
  72.             [name] => albums
  73.         )
  74.  
  75.     [9] => Array
  76.         (
  77.             [id] => 48
  78.             [section] => 2
  79.             [parent_id] => 0
  80.             [name] => proverka1
  81.         )
  82.  
  83.     [10] => Array
  84.         (
  85.             [id] => 49
  86.             [section] => 2
  87.             [parent_id] => 48
  88.             [name] => proverka
  89.         )
  90.  
  91.     [11] => Array
  92.         (
  93.             [id] => 11
  94.             [section] => 2
  95.             [parent_id] => 49
  96.             [name] => proverka
  97.         )
  98.  
  99.     [12] => Array
  100.         (
  101.             [id] => 10
  102.             [section] => 2
  103.             [parent_id] => 11
  104.             [name] => test
  105.         )
  106.  
  107. )
  108.  
  109.  


Теперь вопрос как из этого массива по parent_id сделать пути из имен типа proverka/test
2. Deonis - 12 Ноября, 2013 - 19:51:44 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. function makePath($pid){
  2.         global $arr; // ваш массив
  3.         $path = false;
  4.         if(array_key_exists($pid,$arr)){
  5.                 $path = array();
  6.                 foreach($arr as $line){
  7.                         if($line['parent_id'] == $pid){
  8.                                 $path[] = $arr[$pid]['name'].'/'.$line['name'];
  9.                         }
  10.                 }
  11.         }
  12.         return $path;
  13. }
  14. print_r( makePath(11) );


На выходе - массив содержащий возможные сгенерированные пути или false, если таковых не оказалось. Если вы знаете, что такой путь может быть только в единственном экземпляре, то ответ функции можно и не собирать в массив.

 

Powered by ExBB FM 1.0 RC1