За последние 24 часа нас посетили 25812 программистов и 1726 роботов. Сейчас ищут 817 программистов ...

Как массив, возращаемый из функции, занести в массив

Тема в разделе "PHP для новичков", создана пользователем iKNG, 24 авг 2012.

  1. iKNG

    iKNG Активный пользователь

    С нами с:
    24 авг 2012
    Сообщения:
    8
    Симпатии:
    0
    Я, создавая новый проект, наткнулся на одну проблему. (Покажу на примере)
    Код (Text):
    1.  
    2. <?php
    3. function primer () {
    4. $a[0] = 1;
    5. $a[1] = 2;
    6. return $a;
    7. }
    8. //Как теперь этот массив "достать" из функции? Если сделать так:
    9. //$a = primer();
    10. //  То получится пустая переменная, а мне нужен массив с числами 1 и 2
    11. ?>
     
  2. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    с чего б ей быть пустой?

    Array ( [0] => 1 [1] => 2 )
     
  3. iKNG

    iKNG Активный пользователь

    С нами с:
    24 авг 2012
    Сообщения:
    8
    Симпатии:
    0
    Тогда задам вопрос по другому:
    Код (Text):
    1.  
    2. <?php
    3. function primer () {
    4. $a[0][0] = 1;
    5. $a[1][1] = 2;
    6. return $a;
    7. }
    8. $a = primer();
    9. foreach ($a as $key => $value) {
    10. $val = sort($val);
    11. }
    12. //Выводит:
    13. //Warning: sort() expects parameter 1 to be array, string given in /../index.php on line9
    14. ?>
     
  4. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    sort — Сортирует массив а ты вообще непонятно что $val = sort($val);
     
  5. iKNG

    iKNG Активный пользователь

    С нами с:
    24 авг 2012
    Сообщения:
    8
    Симпатии:
    0
    Спасибо. Только у меня в оригинальном файле проекта после этого есть цикл foreach, использующий массив $val, и он пишет:
    P.s.Я проверял массив функцией is_array(), все нормально
     
  6. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    после, что угодно

    $val = sort($val);

    а тут сортировать нечего явно
     
  7. iKNG

    iKNG Активный пользователь

    С нами с:
    24 авг 2012
    Сообщения:
    8
    Симпатии:
    0
    Даже без сортировки выдает ту же ошибку.
     
  8. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    код покажи без сортировки
     
  9. iKNG

    iKNG Активный пользователь

    С нами с:
    24 авг 2012
    Сообщения:
    8
    Симпатии:
    0
    Код (Text):
    1.  
    2. function showTree($folder $filesTree, $i) {
    3. $files = scandir($folder);
    4.  foreach($files as $file) {
    5. if (is_dir($f0)) {
    6.         $filesTree['dirs'][$i['dirs']] = $space.$file." %%% ".getsize(sizedir($file));
    7.         $i['dirs']++;
    8.         //showTree($f0, $space.'&nbsp;&nbsp;', $filesTree, $i);
    9.       }
    10.       else {
    11. $filesTree['files'][$i['files']] = $space.$file." %%% ".getsize(filesize($file));
    12. $i['files']++;
    13. }
    14.     }
    15. return $filesTree;
    16.   }
    17. $filesTree = '';  $filesTree['dirs'] = ''; $filesTree['files'] = ''; $i['dirs'] = 0; $i['files'] = 0;
    18. $filesTree = showTree("../theme/", "", $filesTree, $i);
    19. $dirs = '';
    20. $files = '';
    21. $i = ''; $i['files'] = 0; $i['dirs'] = 0;
    22. foreach ($filesTree as $key => $value) {
    23. if ($key == 'dirs') {
    24. sort($value);
    25. foreach ($value as $file) {
    26. $keywords = preg_split("/%%%/", $file);
    27. $dirs[$i['dirs']]['title'] = $keywords[0];
    28. $dirs[$i['dirs']]['size'] = $keywords[1];
    29. $i['dirs']++;
    30. }
    31. }
    32. elseif ($key == 'files') {
    33. sort($value);
    34. foreach ($value as $file) {
    35. $keywords = preg_split("/%%%/", $file);
    36. $files[$i['files']]['title'] = $keywords[0];
    37. $files[$i['files']]['size'] = $keywords[1];
    38. $i['files']++;
    39. }
    40. }
    41. else {
    42. echo "<p>&#1054;&#1096;&#1080;&#1073;&#1082;&#1072;! &#1055;&#1086;&#1087;&#1088;&#1086;&#1073;&#1091;&#1081;&#1090;&#1077; &#1086;&#1073;&#1085;&#1086;&#1074;&#1080;&#1090;&#1100; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1091;.</p>";
    43. }
    44. foreach ($dirs as $dir) {
    45. echo "<tr><td>".$dir['title']."</td><td>".$dir['size']."</td></tr>";
    46. }
    47. foreach ($files as $file) {
    48. echo "<tr><td>".$file['title']."</td><td>".$file['size']."</td></tr>";
    49. }
    50. echo "</table></p>";
    51. }
    52. ?>
     
  10. gromdron

    gromdron Активный пользователь

    С нами с:
    10 авг 2012
    Сообщения:
    14
    Симпатии:
    0
    Код (Text):
    1. <?php
    2. function primer () {
    3.     $a[0] = 10;
    4.     $a[1] = 9;
    5.     $a[2] = 8;
    6.     $a[4] = 6;
    7.     $a[3] = 7;
    8.     return $a;
    9. }
    10.  
    11. $a = primer();
    12. var_dump($a);
    13. /*
    14. Выведет:
    15. array
    16.   0 => int 10
    17.   1 => int 9
    18.   2 => int 8
    19.   4 => int 6
    20.   3 => int 7
    21. */
    22. sort($a);
    23. var_dump($a);
    24. /*
    25. Выведет:
    26. array
    27.   0 => int 6
    28.   1 => int 7
    29.   2 => int 8
    30.   3 => int 9
    31.   4 => int 10
    32. */
    33. $a = sort($a);
    34. var_dump($a);
    35. // Выведет:
    36. // boolean true
    37. ?>